MySQL Cluster使用自动递增的BIGINT唯一主键对表进行分片

时间:2013-08-12 03:35:05

标签: mysql sharding

我有一个带有自动递增BIGINT唯一主键的假设表。如果我选择对表格进行分区,那么主键BIGINT会发生什么?分片是否允许超出BIGINT的容量?分片是否可以阻止重复键出现?

提前致谢...

1 个答案:

答案 0 :(得分:1)

据我所知,NDB存储引擎根据第一个主键列的模数在分片数量上进行分片。它这样做是因为它确定了存储行的节点,并且它也确定了当您的查询请求行时从哪个节点读取。

这意味着您不能在多个分片上存在相同的主键值。换句话说,BIGINT中的值范围在分片中划分

所以不,你不会超过BIGINT中的值范围。虽然我质疑为什么你甚至需要问,因为BIGINT真的非常大,你不可能用尽BIGINT,除非你每行跳过几十亿个id值。

是的,将值映射到节点意味着可以在每个节点上执行唯一键检查。但是,使用复制时需要注意这一点。阅读https://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-replication-issues.html