InnoDB的”替代品”:Percona XtraDB
关于
XtraDB是Percona Team在InnoDB的基础上开发出来的一个更加强大的存储引擎,它百分百的兼容InnoDB,我们可以用XtraDB来替代为MySQL的发展做出历史性贡献的InnoDB,新的XtraDB引擎将具有更加强大的性能优势,以及良好的扩展性和一些新特性。
Percona于2008年12月16日正式对外公布Percona XtraDB存储引擎,当时版本为1.0.2-1。在09年有相继发布了release 3/4/5/8,目前最新的版本为Percona-XtraDB 1.0.4-8。
安装XtraDB存储引擎
XtraDB的安装有这么几种:一是现成的RPMS包安装,不过这些包仅限于x86_64位RedHat/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。)
比较
最后,我们简要比较一下XtraDB与InnoDB之间都有哪些变化。分别连上配有不同引擎的数据库服务。比较如下:
1.INFORMATION_SCHEMA中的表数量发生明显变化。
XtraDB :42个(增加了13项INNODB开头的表和一个XTRADB_ENHANCEMENTS表,改表中记录逐一介绍了新的XtraDB对InnoDB所做的各项改进)
InnoDB :28个
2. SHOW INNODB STATUS命令的输出内容的增加。
其中,BUFFER POOL AND MEMORY的内容变得更加丰富。
同时,在输出中,我们还会发现,XtraDB在线程的投入上也有很大提高,在InnoDB中FILE I/O的线程仅为4个,而在XtraDB中你会发现为10个,分别是读、写的线程数都各自增加为4个,这对于性能会有很大提升。
P.S.: 其实,第一次听到InnoDB的替代引擎,实在最近的一次面试的时候,当时,一听傻了,在想“InnoDB”什么时候除了替代品啦,我真的太孤陋寡闻了(Hiro听到后一定有要鄙视我了,LOL:>)。后来,查了一下,是真地――Percona XtraDB,出来了!
建议继续学习:
- Innodb IO优化-配置优化 (阅读:6652)
- Innodb分表太多或者表分区太多,会导致内存耗尽而宕机 (阅读:6148)
- Innodb 表和索引结构 (阅读:4793)
- InnoDB线程并发检查机制 (阅读:4113)
- Innodb如何使用内存 (阅读:4018)
- 快速预热Innodb Buffer Pool的方法 (阅读:3980)
- Innodb文件表空间结构 (阅读:3734)
- InnoDB的缓存替换策略及其效果 (阅读:3655)
- 多版本并发控制:PostgreSQL vs InnoDB (阅读:3645)
- InnoDB之Dirty Page、Redo log (阅读:3434)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:zhang 来源: SQL部落
- 标签: InnoDB XtraDB
- 发布时间:2009-12-07 13:25:09
- [55] IOS安全–浅谈关于IOS加固的几种方法
- [53] 如何拿下简短的域名
- [52] 图书馆的世界纪录
- [52] android 开发入门
- [50] Go Reflect 性能
- [50] Oracle MTS模式下 进程地址与会话信
- [48] 【社会化设计】自我(self)部分――欢迎区
- [47] 读书笔记-壹百度:百度十年千倍的29条法则
- [36] 程序员技术练级攻略
- [29] 视觉调整-设计师 vs. 逻辑