Dan*_* A. 9 mysql innodb optimization maintenance
我想提出一些维护我们的 MySQL 数据库、版本 5.5/6 和使用 InnoDB 的最佳实践。
我遇到了这篇文章,它基本上是在说优化表:
我的问题是:
该博文的作者 Baron Schwartz 是High Performance MySQL, 3rd Edition的合著者之一,这是关于 MySQL 性能的最好的书籍之一。虽然权威的论据并不总是好的,但我想说的是,他可能知道自己在说什么。
虽然他所说的一切都是正确的 - 以我的拙见 - 但你必须理解实际的基本论点:在许多情况下对 InnoDB 表进行碎片整理是无用的(为了性能),而且许多建议经常这样做的人是错误的。
碎片和分页是一个微妙的话题,像 Jeremy Cole 这样的人http://blog.jcole.us/2013/04/09/innodb-bugs-found-during-research-on-innodb-data-storage/和Facebook 工程师提到了很多(特别是关于压缩):https : //www.facebook.com/note.php?note_id=10150348315455933及其对性能的影响。
很多时候,您的性能取决于负载 - 您是否使用自动增量插入?您是否在表格中间多次插入和删除?如果您的表非常动态,您能负担得起额外的磁盘空间吗?
我可以向您推荐一些好的做法(这可能是您想要的):
当然,如果你真的想深入研究这个话题,创建一些表,对它们进行碎片整理,然后检查你是否真的有一些收获。一般来说,表空间处理和统计信息收集在 InnoDB 上是相对自动的。