mysql5.1插件式的架构

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

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注