InnoDB的”替代品”:Percona XtraDB

2009-12-12 23:27:39  |   才被阅读:2,408 次  |   才3条评论
分类: MySQL优化设计  |   发布: OurMySQL  |   来源:SQL部落
标签: ,

关于

Percona Team的基础上开发出来的一个更加强大的存储引擎,它百分百的兼容InnoDB,我们可以用XtraDB来替代为MySQL的发展做出历史性贡献的InnoDB,新的XtraDB引擎将具有更加强大的性能优势,以及良好的扩展性和一些新特性。

Percona20081216日正式对外公布Percona XtraDB存储引擎,当时版本为1.0.2-1。在09年有相继发布了release 3/4/5/8,目前最新的版本为Percona-XtraDB 1.0.4-8

安装XtraDB存储引擎

XtraDB的安装有这么几种:一是现成的RPMS包安装,不过这些包仅限于x86_64RedHat/CentOS 4/5系统下,而且MySQL的版本为5.1.30;还有就是通过整体编译MySQL源码包的安装,即将新的XtraDB引擎的代码整合到MySQL的源码中,进行重新编译。前面这两种都需要重新搭建MySQL数据库,例外还有一种,就是动态的将XtraDB加载进正在运行MySQL中,这个看上去很符合生产的要求。

下面我们就来介绍Linux系统下,源码包的安装方法,具体步骤如下:

1.下载MySQL的源码安装包。http://dev.mysql.com/downloads/mysql/5.1.html#source

2.下载Percona XtraDB的源码安装包。https://launchpad.net/percona-xtradb/+download

3.编译安装MySQL

shell>tar -xvf mysql-5.1.35.tar.gz

shell>cd mysql-5.1.35/storage

shell>tar -xvf percona-xtradb-1.0.4-8.tar.gz

shell>rm -rf innobase

shell>mv percona-xtradb-1.0.4-8 innobase

shell>cd ..

shell>./configure -prefix=/usr/local/mysql -with-plugins=innobase && make && make install

shell> cp support-files/my-medium.cnf /etc/my.cnf

shell> cd /usr/local/mysql

shell> chown -R mysql.mysql .

shell> bin/mysql_install_db -user=mysql

shell> chown -R root .

shell> chown -R mysql var

shell> bin/mysqld_safe -user=mysql &

 

4.验证XtraDB引擎的100%兼容Innodb

shell> mysql -uroot -p < eiken_uat_backup.090803230101  (将生产数据库导入新的MySQL)

mysql> show create table user_role\G

*************************** 1. row ***************************

       Table: user_role

Create Table: CREATE TABLE `user_role` (

  `user_name` varchar(100) NOT NULL,

  `role_name` varchar(25) NOT NULL,

…omit….

) ENGINE=InnoDB DEFAULT CHARSET=latin1

1 row in set (0.00 sec)

(经测试,所有应用一切正常。)

mysql> create table xtradb_tb(id int(3),engine_name char(120)) engine=innodb; (创建一个使用XtraDB引擎的表)

Query OK, 0 rows affected (0.00 sec)

mysql> show create table xtradb_tb\G

*************************** 1. row ***************************

       Table: xtradb_tb

Create Table: CREATE TABLE `xtradb_tb` (

  `id` int(3) DEFAULT NULL,

  `engine_name` char(120) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1

1 row in set (0.00 sec)

NOTE:如果你要使用XtraDB这个引擎,engine的值依然要设置成InnoDB。)

比较

最后,我们简要比较一下XtraDBInnoDB之间都有哪些变化。分别连上配有不同引擎的数据库服务。比较如下:

1.INFORMATION_SCHEMA中的表数量发生明显变化。

XtraDB 42个(增加了13INNODB开头的表和一个XTRADB_ENHANCEMENTS表,改表中记录逐一介绍了新的XtraDBInnoDB所做的各项改进)

InnoDB 28

2. SHOW INNODB STATUS命令的输出内容的增加。

其中,BUFFER POOL AND MEMORY的内容变得更加丰富。

同时,在输出中,我们还会发现,XtraDB在线程的投入上也有很大提高,在InnoDBFILE I/O的线程仅为4个,而在XtraDB中你会发现为10个,分别是读、写的线程数都各自增加为4个,这对于性能会有很大提升。

P.S.: 其实,第一次听到InnoDB的替代引擎,实在最近的一次面试的时候,当时,一听傻了,在想“InnoDB”什么时候除了替代品啦,我真的太孤陋寡闻了(Hiro听到后一定有要鄙视我了,LOL:>)。后来,查了一下,是真地——Percona XtraDB,出来了!

相关文章

3 Responses to “InnoDB的”替代品”:Percona XtraDB”

  1. whitepoplar Says:

    不是替代品,只是加强版而已,把各种补丁打进去了,还是给予innodb的


  2. Replicas de relógios Relógios replicas com maquina Miyota Citizen e Movimento japones Says:

    Replicas de relógios Relógios replicas com maquina Miyota Citizen e Movimento japones…

    [...]InnoDB的”替代品”:Percona XtraDB | OurMySQL | 我们致力于一个MySQL知识的分享网站[...]…


  3. English Chinese Translator Says:

    I provide Chinese translation service…

    [I do agree with all of the ideas you have presented to your post. They’re very convincing and will certainly work. Nonetheless, the posts are too short for starters. May you please lengthen them a bit from subsequent time? Thank you for the post.I’d…


Leave a Reply