如果我要创建一个mysql表(innodb)并且我达到了可以添加的最大记录数(不确定确切数字,数十亿甚至更多?)除了我无法添加新记录之外会发生什么? ?我怎么能解决这个问题?
我知道桌子要达到极限会花费数年时间,但展望未来,避免这种情况的最佳方法是什么?
答案 0 :(得分:2)
除非您在Google或NSA工作,否则您不应该遇到此类问题。表中的最大记录数(如果忽略直接文件大小限制)将与主键绑定。
但是,既然你应该已经使用SERIAL
(别名为BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE
),那么它的最大值将是
18446744073709551615.
存储一个填充表,只有一个这样的列,需要~150EB(压缩前)。这是1500000 TeraBytes。
答案 1 :(得分:1)
唯一适用的限制是显示的最大表格大小为64TB on their site。
避免达到或其他可能的硬件限制(主要是磁盘空间)的解决方案是归档。归档只是常规地提取旧记录并将它们插入到您使用日期调用归档的其他表中,当然也可以将它们从原始表中删除。
请注意,归档是在较旧的记录上完成的。您希望保留最近的记录。因此,通常每隔6个月定期进行一次,保持最后3个月。
此过程还可以在某些情况下提高性能。