IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

推荐使用innodb_plugin

MySQL支持 2009-11-30 20:20:46 累计浏览 2,676 次
本机暂存

     innodb-plugin 出现差不多有一年了。从功能上性能上都表现的不错。自MySQL-5.1.38后发行的版本中已包括了该功能。(推荐使用MySQL-5.1.40)

    http://dev.mysql.com/doc/refman/5.1/en/innodb.html

    http://planet.mysql.com/entry/?id=20926

    该版本的特性:

    http://www.innodb.com/wp/products/innodb_plugin/license/third-party-contributions-in-innodb-plugin-1-0-4/

    Multiple Background Threads

    ==把后面进程的IO进程,细化并可以分配成多个.以前Linux下该IO只能是四个.现在可以最大调到64个.

    Master Thread I/O Capacity Tuning

    ==内部IO限制.我们现在用的Innoddb内部有同时可以操作100个IO限制.这个限制对于现在高端的磁盘显的太少了

    Asynchronous Read Ahead

    ==这是 Google and Percona 的一个Patch对增强MySQL的IO性能及Buffer中读取速度有所改善.

    Group Commit

    ==该功能是MySQL一直支持的,但支持的不够好.在5.1.38的innodb-plugin-1.0.4中的支持是使用的percona的支持.把该性能支持的更好.

    Adaptive Flushing

    ==自适应的刷新脏页,该功能也是来自percona的支持.对于Innodb checkpoint在原来的情况下在某种条件的触发下要进行一个checkpoint因为某些机制,有时并不能很好的完成,

    出现系统的抖动现象.如:文件的锁问题,文件系统fsync一大片更新数据,对系统io冲击较大。若分隔成多个小数据fsync,能够减少对读的影响。同时结合mysql代码,发现mysql保证两次fsync之间至少有20ms的sleep,这样的话,若将一次fsync变成多次小数据操作,应该能够减少慢查询的比例。(从目前来看,杜绝是不太可能的)。这也是为什么近几年来percona,innodb的barrauda在推独表空间的一个原因吧.

    对于该Patch的引入,它利用10%的IO去做checkpoint从而减少对系统的压力.

    Additional Patches

    ==这部分是Sun的支持.加入了对Solaris的一些特别支持.

    对我们有用的是: 对innodb spin loops做了更好的处理.增大了spin的值.

    对DBA增加一个诱人的地方:

    创建非cluster index时,不用是在Copy表这样一个复杂过程了.

    另外:

     加入了一种新的Innodb文件格式:barracuda ,据说该文件格式对性能提升很高.但要求使用独立表空间.

    http://www.mysqlperformanceblog.com/2008/04/23/real-life-use-case-for-barracuda-innodb-file-format/

    该功能需要加入innodb_file_format=barracuda ,并且需要在配置中文件中声明:innodb_file_per_table

    所以需要使用该功能的朋友建义Dump出来数据后在[mysqld]中设置这两个参数后在导入:

以下是代码片段:
[mysqld]
ignore_builtin_innodb
plugin_dir=/usr/local/mysql/lib/plugin
plugin-load=innodb=ha_innodb_plugin.so;innodb_trx=ha_innodb_plugin.so;innodb_locks=ha_innodb_plugin.so;innodb_cmp=ha_innodb_plugin.so;innodb_cmp_reset=ha_innodb_plugin.so;innodb_cmpmem=ha_innodb_plugin.so;innodb_cmpmem_reset=ha_innodb_plugin.so
innodb_file_format=barracuda
innodb_file_per_table

    Innodb plugin是一个比较让人企待的版本.其实这些功能基本上都被pernoca公司在mysql5.0中实现了.而且我以前使用相关的版本后都是表现良好的.

     所以我觉的对于MySQL5.1.38可以导一份基于独立表空间的数据做一个对比.

    文中提及的percona: http://www.percona.com/

    Google: http://code.google.com/p/google-mysql-tools/wiki/Mysql5Patches

    更多关于innodb 的信息可以参考:http://www.innodb.com

同分类推荐文章

  1. 使用deepseek进行Oracle恢复,引起重大故障 (2026-06-22 10:56:00)
  2. 接手一个只差临门一脚的数据库恢复 (2026-06-18 00:13:09)
  3. 我做了一个 AI 版的 StarRocks 升级风险扫描工具,直接帮我定位到一个风险 (2026-06-15 01:00:00)

查看更多 数据库 文章 →

建议继续学习

  1. 用Hyer来进行网站的抓取 (累计阅读 158,252)
  2. MySQL数据库在实际应用一些方面的介绍 (累计阅读 36,399)
  3. WordPress插件开发 -- 在插件使用数据库存储数据 (累计阅读 29,164)
  4. Mysql监控指南 (累计阅读 21,351)
  5. 由浅入深探究mysql索引结构原理、性能分析与优化 (累计阅读 16,523)
  6. 在Apache2.2.XX下安装Mod-myvhost模块 (累计阅读 13,058)
  7. 15个最好的免费开源电子商务平台 (累计阅读 12,541)
  8. 浅谈MySQL索引背后的数据结构及算法 (累计阅读 11,908)
  9. 整理了一份招PHP高级工程师的面试题 (累计阅读 11,709)
  10. 深入浅出INNODB MVCC机制与原理 (累计阅读 9,693)