Mysql数据库服务器性能配置优化三 — Mysql编译配置优化,XtraDB使用
这个部分的优化已经有很多文章写过了,这里就写一下重点
一、使用XtraDB代替原有默认的InnoDB引擎,并优化编译参数。
XtraDB引擎是percona公司对于InnoDB引擎进行改进加强后的产品,XtraDB兼容innodb的所有特性,并且在IO性能,锁性能,内存管理等多个方面进行了增强。
XtraDB的性能比默认的InnoDB好很多,相关测试文档:
XtraDB benchmarks – 1.5X gain in IO-bound load
1、percona-server 是percona公司把XtraDB集成到MySQL源码中并做了一些其他优化的集成包,有兴趣的朋友可以直接安装这个集成包,它提供了很多安装包以及基本的源码包。
我们这里主要讲讲怎么在MySQL官方源码包中集成编译XtraDB(作为生产环境还不太敢用percona-server 集成包,怕额外的功能和优化可能导致BUG)
下载MySQL官方源码包
http://dev.mysql.com/downloads/mysql/5.1.html#source
下载XtraDB源码包(percona把XtraDB的源码藏的很深,他们想推percona-server,如果下面链接失效了,朋友们自己google一下吧)
tar -zxf mysql-5.1.49.tar.gz
tar -zxf percona-xtradb-1.0.6-9.1.tar.gz
将MySQL原来的innodb源码重命名
cd mysql-5.1.49/storage
mv innobase innobase_bak
将XtraDB拷贝为innobase
cp -r ../../percona-xtradb-1.0.6-9.1 innobase/
创建组和用户:
# groupadd mysql
# useradd -g mysql mysql
编译安装MySQL
cd ../
./configure –prefix=/opt/mysql –with-extra-charsets=all –enable-assember –enable-profiling –enable-community-features –enable-local-infile -with-charset=utf8 –with-collation=utf8_general_ci -enable-thread-safe-client –without-debug -with-berkeley-db -with-zlib-dir=bundled –with-plugins=all –with-client-ldflags=-all-static –with-mysqld-ldflags=-all-static –with-unix-socket-path=/tmp/mysql.sock –with-big-tables –sysconfdir=/opt/etc/mysql
重点参数说明:
–prefix= 指定安装路径
–with-charset=utf8 指定缺省字符集
–with-collation=utf8_general_ci 指定缺省排序方式
–with-extra-charsets=all 指定安装扩展字符集
–enable-local-infile 指定允许本地导入文件
–enable-thread-safe-client 指定线程安全模式
–enable-assembler 允许使用汇编模式(优化性能)
–with-client-ldflags=-all-static 静态编译
–with-mysqld-ldflags=-all-static 静态编译,提升性能13%
–with-unix-socket-path= 指定Unix Socket路径,本机访问提升7%
–with-plugins=all 指定安装全部存储引擎
–with-big-tables 指定支持超大表
–without-debug 去除debug信息
–sysconfdir 指定my.cnf放置的位置
make && make install