在MySQL分区表中,DIV如何在这里作为HASH分区定义的一部分使用?

问题描述 投票:0回答:2

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

mysql performance hash partitioning database-partitioning
2个回答
0
投票

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

太糟糕了。

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

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


0
投票

DIV功能执行整数分割,例如, 108/10 = 10.8其中108 DIV 10 = 10。

ID DIV 1000000将为前1000000条记录返回0,为下一条1000000记录返回1,依此类推。

HASH(ID DIV 1000000)返回返回的整数的HASH。

© www.soinside.com 2019 - 2024. All rights reserved.