【问题标题】:How-to's for MySQL InnoDB (insert) performance optimization?MySQL InnoDB(插入)性能优化的操作方法?
【发布时间】:2011-09-28 15:04:14
【问题描述】:

我仍在为使用 InnoDB 引擎的 MySQL 数据库的性能而苦苦挣扎。尤其是数据插入的性能,次要运行查询的性能。

我一直在谷歌上搜索信息、操作方法等,但我发现大多数信息都相当深刻。我可以在网上的某个地方找到一些“新手”的基本信息,这是性能优化的起点吗? InnoDB 优化的第一个也是最重要的导入步骤,以不太复杂的方式进行了解释。

我使用的是 Windows 平台

【问题讨论】:

标签: mysql performance


【解决方案1】:

我曾经管理过几个非常大的 MySQL 数据库(例如 1TB+)。它们是巨大的、无情的野兽,有无穷无尽的胃口给我带来胃病。

我阅读了有关 MySQL Performance Tuning 和 innodb 的所有内容。以下是对我有帮助的总结:

  1. High Performance MySQL 这本书很好,但只能让你走这么远。
  2. 博客MySQL Performance Blog (this link is to their posts tagged 'innodb') 是我在网上找到的最有用的整体资源。他们详细介绍了许多 innodb 调优问题。有时它会变得“咆哮”,但总的来说它很棒。这是InnoDB Performance Optimization Basics 上的另一个链接,很好。
  3. 我学习它的最后一件主要事情就是简单地阅读 MySQL Docs 本身。我阅读了每个最后一个参数的工作原理,在我的服务器上更改了它们,然后做了一些基本的分析。一段时间后,您通过运行大查询并查看会发生什么来弄清楚什么是有效的。这是一个很好的起点: InnoDB Performance Tuning and Troubleshooting

最后,它只是试验和解决问题,直到你获得足够的知识来知道什么是有效的。

【讨论】:

  • 感谢您的详细解答。我不会广泛使用 MySQL,不幸的是我没有太多时间彻底研究所有这些问题,但我现在有一些很好的起点
  • @Kevin,您了解每个设置的工作原理吗?当有多达622 server variables 时,这怎么可能?而且该列表仅包含specifiic to InnoDB 的一些变量。
  • 我通读了我正在使用的版本的所有文档。现在是很久以前的事了,但是是的,有很多。我们在几年的时间里建立了这个。
【解决方案2】:

对于新手:innodb_flush_log_at_trx_commit=0,如果你能承受在服务器崩溃时损失最多 1 秒的工作。这是性能与可靠性的权衡,但它会极大地提高您的写入性能。如果您负担得起电池支持的写入缓存,请使用它。

特别是在 Windows 上,就写入性能而言,MariaDB 5.3 可能比 Oracle 的 MySQL 更好,因为 MariaDB 能够更好地利用 Windows 上的异步 IO。我前段时间写了一篇关于它的注释here,在标准综合基准测试中,它的性能比现有的 MySQL 5.5 高 500%(参见注释末尾的图片)。

但是,影响性能的首要因素是磁盘刷新。如果您使用 *innodb_flush_log_at_trx_commit* 参数或电池支持的写入缓存放宽持久性,这是可以解决的。您也可以考虑使用更大的事务,它们会减少磁盘刷新量。

【讨论】:

    【解决方案3】:

    试试 MySQL Primer 脚本:http://day32.com/MySQL/

    【讨论】:

    • 好的,但是它可以在 Windows 机器上运行吗?我猜只有 Unix/Linux?
    【解决方案4】:

    我没有使用网络,我使用书籍。 :)

    我用来学习 MySQL 的书是 Robert Sheldon 和 Geoff Moes 的 Wrox Press 的“Beginning MySQL”。第 15 章介绍了一些优化的基础知识。我非常喜欢这本书,并认为它会是很好的阅读材料,并且一直是我的第一参考。但它不是特定于存储引擎的。

    我还有另一本书,来自 apress 的 Pro MySQL,其中详细介绍了特定的存储引擎,但也更难阅读。不过还是不错的参考。

    【讨论】:

    • 谢谢,也许我得买这本书了。但是对于大多数我可以使用网络的编程问题,应该在某个地方有一些信息......
    猜你喜欢
    • 1970-01-01
    • 2015-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    相关资源
    最近更新 更多