mysql - 在 MySQL 对表进行分区时,这里如何使用 DIV 作为 HASH 分区定义的一部分?

标签 mysql performance hash partitioning database-partitioning

我正在阅读有关分区的内容,并在某处读到以下示例:
哈希(id DIV 1000000)
这可用于为插入的每百万行创建一个新分区(id 是主键)。
但我不明白这个 id DIV 1000000 是怎么来的
这不是模数吧?那么这里的哈希是如何使用的呢?

最佳答案

我猜这是为了将前一百万行放在第一个分区中,第二百万行放在第二个分区中,......并最终环绕。

这太糟糕了。

您不会获得任何性能优势。它可能无法在 INSERT 或 SELECT 上进行分区修剪。

让我们回到绘图板。您为什么考虑使用 PARTITIONing? PARTITION 能带来任何好处的用例很少。我在这里总结了一些技巧:http://mysql.rjweb.org/doc.php/partitionmaint 。该博客还展示了如何处理最常见的用例,即清除“旧”行的时间序列。

关于mysql - 在 MySQL 对表进行分区时,这里如何使用 DIV 作为 HASH 分区定义的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21243433/

相关文章:

mysql - sql语句order by with condition总是失败?

php - 如何在 mysql_query 返回的数组中找到一些值

ruby-on-rails - 使用键的值作为同一散列中另一个键的值的一部分

c# - .NET 实现的 scrypt

mysql - ApexSQL 搜索需要将对象资源管理器连接到 MySQL 数据库

php - 将 NULL 变量插入数据库

python - 矩阵求逆 (3,3) python - 硬编码与 numpy.linalg.inv

python - python 中读取 csv、处理每一行并编写新 csv 的最快方法

performance - 使用 --depth 1 进行浅克隆、创建提交并再次 pull 更新是否安全?

ruby - 在 Ruby 中将嵌套哈希键从 CamelCase 转换为 snake_case