技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> MySQL --> InnoDB的”替代品”:Percona XtraDB

InnoDB的”替代品”:Percona XtraDB

浏览:2544次  出处信息

关于

XtraDBPercona TeamInnoDB的基础上开发出来的一个更加强大的存储引擎,它百分百的兼容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,出来了!

建议继续学习:

  1. Innodb IO优化-配置优化    (阅读:6425)
  2. Innodb分表太多或者表分区太多,会导致内存耗尽而宕机    (阅读:6008)
  3. Innodb 表和索引结构    (阅读:4605)
  4. Innodb如何使用内存    (阅读:3876)
  5. InnoDB线程并发检查机制    (阅读:3845)
  6. 快速预热Innodb Buffer Pool的方法    (阅读:3841)
  7. InnoDB的缓存替换策略及其效果    (阅读:3536)
  8. 多版本并发控制:PostgreSQL vs InnoDB    (阅读:3518)
  9. Innodb文件表空间结构    (阅读:3476)
  10. InnoDB之Dirty Page、Redo log    (阅读:3308)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:数据库HA方案
后一篇:MySQL修改库名 >>
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1