【问题标题】:At what point does MySQL INNODB fine tuning become a requirement?MySQL INNODB 微调在什么时候成为要求?
【发布时间】:2011-07-12 00:42:30
【问题描述】:

我看过这个:
http://www.mysqlperformanceblog.com/2009/01/12/should-you-move-from-myisam-to-innodb/
和:
http://www.mysqlperformanceblog.com/2007/11/01/innodb-performance-optimization-basics/

这些回答了我关于 INNODB 与 MyISAM 的很多问题。毫无疑问,INNODB 是我应该走的路。但是,我正在自己工作并且为了开发,我创建了一个 LAMP (ubuntu 10.10 x64) VM 服务器。目前该服务器有 2 GB 内存和一个 SATA 20GB 驱动器。我可以毫不费力地将这两个数量增加到大约 3-3.5 GB 内存和 200 GB 驱动器。

我犹豫切换到 INNODB 的原因是:
A) 上面的文章提到 INNODB 会大大增加表的大小,他建议使用更大的 RAM 和驱动空间。虽然在生产环境中我不介意这种增加,但在开发环境中,我担心我无法适应。
B) 我真的看不出微调 VM 上的 INNODB 引擎有什么意义。这很可能是我什至不允许在我的生产环境中做的事情。这些文章听起来好像 INNODB 没有微调就注定要失败。

我的问题是这样的。 INNODB 在什么时候可行?在我的服务器上运行 INNODB 需要多少 RAM(只有我的数据用于测试。这个服务器除了我之外不对任何人开放)?并且我是否可以安全地假设不允许我微调数据库的生产环境可能已经对其进行了微调?

另外,我是不是想太多/过度担心一些事情?

【问题讨论】:

    标签: mysql innodb virtual-machine lamp


    【解决方案1】:

    我想你可能想多了。 INNODB 确实喜欢 ram,但如果您的数据库很小,我认为您不会遇到很多问题。我对 MYSQL 或任何其他数据库的唯一问题是,随着数据的增长,对快速访问它的要求也在增长。您还可以对表使用压缩以使其更小,但 INNODB 在数据完整性方面比 MISAM 好得多。

    在您遇到瓶颈之前,我也不会担心调整您的应用程序。编写高效的查询和数据库设计似乎比内存更重要,除非您正在处理非常大的数据集。

    【讨论】:

    • 感谢您的见解。我一定会考虑的。
    【解决方案2】:

    恕我直言,当您拥有数万行时,或者您可以预测数据的增长率时,它就成为了一项要求。

    您需要专注于调整 innodb 缓冲池和日志文件大小。另外,请确保您已启用 innodb_file_per_table。

    要了解 innodb 缓冲池的大小(以 KB 为单位),请运行以下查询:

    SELECT SUM(data_length+index_length)/power(1024,1) IBPSize_KB
    FROM information_schema.tables WHERE engine='InnoDB';
    

    这里是MB

    SELECT SUM(data_length+index_length)/power(1024,2) IBPSize_MB
    FROM information_schema.tables WHERE engine='InnoDB';
    

    这里是 GB

    SELECT SUM(data_length+index_length)/power(1024,3) IBPSize_GB
    FROM information_schema.tables WHERE engine='InnoDB';
    

    我写过关于这种调优的文章

    如果您受到服务器上 RAM 数量的限制,请不要超过为操作系统而安装的 25%。

    【讨论】:

    • 感谢您的全面回答。我会经历这一切,可能会切换到 INNODB。
    • 哇,对于我的环境来说,计算内存量是惊人的。这计算出您应该以 MB 为单位分配缓冲池的内存量?你确定不是KB?
    • @RolandoMySQLDBA,启用innodb_file_per_table有什么好处?在哪些情况下适用?谢谢。
    猜你喜欢
    • 2011-09-27
    • 2015-04-21
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 2015-04-05
    • 2016-09-28
    • 1970-01-01
    相关资源
    最近更新 更多