我有7GB的MyISAM表,它突然崩溃了。我能够修复它,但现在我提出了疑问并且几乎没有问题: - 由于规模不断扩大,我预计未来会有更多的桌面崩溃吗? (或者尺寸与坠机风险无关) - 是否有风险,MyISAM表可能会如此严重地解体,以至于无法恢复?我记得旧的dBase,它很容易崩溃,不再有可能挽救数据。我现在希望,MyISAM更稳定。
流量适中,约有140个连接
感谢您的回答
答案 0 :(得分:0)
https://dev.mysql.com/doc/refman/5.7/en/table-size-limit.html
取决于操作系统文件大小限制,最大大小为256TB,见上文。
我运行的MyISAM表高于7GB,我认为它大于20GB。 你应该考虑的一件事是分区表。这会将表分成较小的位,因此表损坏的风险较小,如果使用您对表进行分区的索引进行查询,则可以提高选择查询性能的速度。不可否认,它可以在某些条件下破坏其他东西,但通常情况下,当你有一张表格时,分区大小是一件好事,特别是如果你担心稳定性。
答案 1 :(得分:0)
如前所述,MyISAM几乎没有尺寸限制。我见过的最大的MyISAM表是330GB的数据。
当服务器崩溃时,MyISAM经常破坏索引。需要“修复”,通常修复它。但是,如果它位于多行INSERT
或UPDATE
或DELETE
的中间,则某些行可能已被修改,而其他行则未被修改。这可能导致不同的“腐败”风格。解决这个问题的唯一方法是使所有写入都是幂等的。
InnoDB避免了上述问题。它基本上有一个缺点 - 7GB将变为15GB-20GB。如果您有磁盘空间,我强烈推荐converting。 (是的,MariaDB支持大量其他引擎,而Oracle正在通过InnoDB删除所有内容,但大多数是针对狭隘的利基。如果没有关于您的数据的更多信息,我不会推荐除InnoDB以外的任何内容。)