MyIsam MRG - 管理唯一性的最佳做法

时间:2017-11-16 19:24:15

标签: mysql primary-key myisam

MRG表包含1B +行,分布在几个较小的表中。其他观察结果被添加到MRG表中,后者将它们添加到最后一个基础表中。

出于某种原因,似乎有几个重复的行共享相同的主键。我知道这是MRG表的限制,在我们的情况下它并没有真正的问题(它只是意味着无用的冗余)。我们认为在系统崩溃后插入了重复项,因此应用程序的代码无法正确处理重新处理,该代码会在插入存档之前从临时表中删除重复项。

话虽如此,是否有一套保持唯一性的最佳实践,不需要太多的处理时间?

1 个答案:

答案 0 :(得分:0)

您将始终面临重复的风险。

https://dev.mysql.com/doc/refman/5.7/en/merge-storage-engine.html说:

  

... MERGE表不能强制基础表集的唯一性。

不要使用MERGE表。 MERGE仅适用于MyISAM和you shouldn't be using MyISAM

相反,请使用PARTITIONING。您可以在给定表的所有分区中强制实现唯一性。