MySQL5.1版本对于存储引擎采用插件式的架构,每个存储引擎通过继承一个handler的C++类,样所有的存储引擎都是真正的插件式的。对于之前的版本来说,如果发现一个InnoDB存储引擎的bug,就需要等待MySQL新版本的发布来解决这个bug,InnoDB公司对此只能通过补丁形式来解决,需要重新编译MySQL。对于MySQL5.1的版本,可以安装新版本的InnoDB存储引擎来替代有bug的旧引擎。
在MySQL5.1.38之前的版本中,当需要安装InnoDB Plugin时,需要下载Plugin文件,再进行安装。从MySQL5.1.38版本开始,MySQL包含了两个不同版本的InnoDB存储引擎:一个是旧版本的引擎,称之为build-in innodb(内置版本);另一个是新版本的InnoDB存储引擎(innodb-plugin.1.0.4)InnoDB Plugin版本。Plugin版本在很多方面优于built-in版本。

InnoDB Plugin版本的特性有:
1.后台IO线程细化并分配多个。默认的read thread和write thread分表增大到了4个,并且不再使用innodb_file_io_threads参数,而是分别使用innodb_read_io_threads和innodb_write_io_threads参数。之前Linux下IO线程只能是四个,现在可以最大可以调到64个。
2.内部IO限制,现在InnoDB内部同时可以操作100个IO限制。
3.快速DDL,增强MySQL的IO性能以及buffer中读取速度。
4.自适应的刷新脏页。
5.引入全新的文件格式barracuda。对性能提升很高,要求使用独享表空间。

对于mysql5.1.38之后的版本,要使用新的InnoDB Plugin存储引擎,只需在my.cnf中做如下配置:

 
   
  1. [mysqld] 
  2. ignore-builtin-innodb 
  3. plugin-load=innodb=ha_innodb_plugin.so 
  4. plugin-load=innodb_trx=ha_innodb_plugin.so 
  5. plugin-load=innodb_locks=ha_innodb_plugin.so 
  6. plugin-load=innodb_cmp=ha_innodb_plugin.so 
  7. plugin-load=innodb_cmp_reset=ha_innodb_plugin.so 
  8. plugin-load=innodb_cmpmem=ha_innodb_plugin.so 
  9. plugin-load=innodb_cmpmem_reset=ha_innodb_plugin.so 

或是在命令行下加载

 
   
  1. mysql>install plugin innodb soname ‘ha_innodb_plugin.so’;  
  2. mysql>install plugin innodb_trx soname ‘ha_innodb_plugin.so’;  
  3. mysql>install plugin innodb_locks soname ‘ha_innodb_plugin.so’;  
  4. mysql>install plugin innodb_cmp soname ‘ha_innodb_plugin.so’;  
  5. mysql>install plugin innodb_cmp_reset soname ‘ha_innodb_plugin.so’;  
  6. mysql>install plugin innodb_cmpmem soname ‘ha_innodb_plugin.so’;  
  7. mysql>install plugin innodb_cmpmem_reset soname ‘ha_innodb_plugin.so’;  
mysql> show plugins;
+-----------------------+--------+--------------------+---------+---------+
| Name                  | Status | Type               | Library | License |
+-----------------------+--------+--------------------+---------+---------+
| binlog                | ACTIVE | STORAGE ENGINE     | NULL    | GPL     |
| mysql_native_password | ACTIVE | AUTHENTICATION     | NULL    | GPL     |
| mysql_old_password    | ACTIVE | AUTHENTICATION     | NULL    | GPL     |
| MEMORY                | ACTIVE | STORAGE ENGINE     | NULL    | GPL     |
| CSV                   | ACTIVE | STORAGE ENGINE     | NULL    | GPL     |
| MyISAM                | ACTIVE | STORAGE ENGINE     | NULL    | GPL     |
| MRG_MYISAM            | ACTIVE | STORAGE ENGINE     | NULL    | GPL     |
| InnoDB                | ACTIVE | STORAGE ENGINE     | NULL    | GPL     |
| INNODB_TRX            | ACTIVE | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_LOCKS          | ACTIVE | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_LOCK_WAITS     | ACTIVE | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMP            | ACTIVE | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMP_RESET      | ACTIVE | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMPMEM         | ACTIVE | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMPMEM_RESET   | ACTIVE | INFORMATION SCHEMA | NULL    | GPL     |
| PERFORMANCE_SCHEMA    | ACTIVE | STORAGE ENGINE     | NULL    | GPL     |
| partition             | ACTIVE | STORAGE ENGINE     | NULL    | GPL     |
+-----------------------+--------+--------------------+---------+---------+


 

本文出自 “燕雀安知鸿鹄之志哉” 博客,请务必保留此出处http://who0168.blog.51cto.com/253401/528795