InnoDB Plugin 1.0.4 for MySQL 5.1.37
InnoDB Plugin 1.0.4 这次加入了不少第三方的代码,个人比较在意的是 Google 和 Percona 提供的部分。Innodb从而实现了性能上很大的提升,不想以前在并发稍大(比如>8),吞吐量升值会下将,现在却又很大的提升。
个人关注的改进部分有:
1: Multiple Background Threads
最初由Google提供的补丁,参数 innodb_file_io_threads 可以设置io threads的数量,之前是假的…
2:Master Thread I/O Capacity Tuning
之前innodb在代码里面写死了 innodb_io_capacity 为100,但是现在db服务器很多都是用多块硬盘做raid10,IOPS 一般都远不止100,因此这次改进之后 innodb_io_capacity 变成可以动态调整的参数,用于DBA选择一个合适的值。
3:Group Commit
这个据说以前4.x之前就支持的,现在又回来了,支持多个事务同时提交(主要是redo log,之前是因为binlog的2-phase commit protocal的原因中止的),从而提高吞吐量。
4:Adaptive Flushing
这个非常有用,大家知道在脏数据到达设置的阀值比例之后,会开始主动做checkpoint,当checkpoint无可避免的时候,这时候会堵塞用户线程,从而出现性能的突然下降。现在这个问题得到巧妙的解决,会根据算法动态的调整checkpoint的速率,避免出现性能的突然降低。
REFERENCE:
http://www.innodb.com/wp/2009/08/11/innodb-plugin-104-released/
分类: MySQL, MySQL Innodb
终于被官方认证,可以开始尝试下
@deluxe
嗯,这次迫于压力,改进的地方真的不少。最欣赏的还是adaptive checkpoint
我按照readme中的提示,在my.cnf中加入了:
ignore_builtin_innodb
plugin_load=innodb=ha_innodb.so;innodb_trx=ha_innodb.so;innodb_locks=ha_innodb.so;innodb_lock_waits=ha_innodb.so;innodb_cmp=ha_innodb.so;innodb_cmp_reset=ha_innodb.so;innodb_cmpmem=ha_innodb.so;innodb_cmpmem_reset=ha_innodb.so
启动mysql后用
mysql> show variables like ‘%Innodb%’;
+———————–+——-+
| Variable_name | Value |
+———————–+——-+
| have_innodb | NO |
| ignore_builtin_innodb | ON |
+———————–+——-+
发现innodb没有启用
但我把刚修改的my.cnf中的选项去掉重启后innodb又被启用了,这个应该怎么解决呢?
我的是MySQL 5.1.37
已经将ha_innodb.so复制到了/usr/local/mysql/lib/mysql/plugin 目录下
090908 11:41:19 [ERROR] Can’t open shared library ‘/usr/local/mysql/lib/mysql/plugin/ha_innodb.so’ (errno: 0 undefined symbol: my_pthread_fastmutex_init)
090908 11:41:19 [ERROR] Couldn’t load plugin named ‘innodb’ with soname ‘ha_innodb.so’.
@lsmqy
have_dynamic_loading 看看是不是on
另外一种简单的办法就是,直接将plugin的源码替换掉MySQL5.1.37中的innobase
然后编译即可。
@lsmqy
参考一下我的
http://www.lovebsd.com/index.php/archives/174