MySQL配置优化
MySQL可以通过启动时指定配置参数和使用配置文件两种方法进行配置,在大多数情况下
配置文件位于/etc/my.cnf或/etc/mysql/my.cnf;在windows系统配置文件可以位于
C:/windows/my.ini文件,MySQL查找配置的顺序可以通过以下方法获得:
$:/usr/sbin/mysqld --verbose --help | grep -A 1 'Default options'
注意:如果存在多个位置存在配置文件,则后面的会覆盖前面的
常用参数说明
innodb_buffer_pool_size
非常重要的参数,用于配置innodb的缓冲池如果数据库中只有innodb表,
则推荐配置量为总内存的75%
下面是检测语句
select engine,round(sum(data_ength + index_length)/1024/1024,1) as 'Total MB',
from information_schema.tables where table_schema not in ('information_schema',
'performance_schema') group by engine;
innodb_buffer_pool_size >= Total MB
-----
innodb_buffer_pool_instances
MySQL5.5中新增参数,可以控制缓冲池的个数,默认情况下只有一个
-----
innodb_log_buffer_size
innodb log缓冲的大小,由于日志最长每秒钟就会刷新所以一般不用太大
-----
innodb_flush_log_at_trx_commit
关键参数,对innodb的IO效率影响比较大,默认值为1,可以取0,1,2三个值,
一般建议设为2,但如果数据安全性要求比较高则使用默认值1.
-----
innodb_read_io_threads
innodb_write_io_threads
以上两个参数决定了innodb读写IO进程数,默认4
-----
innodb_file_per_table
关键参数,控制innodb中每一个表使用独立的表空间,默认为OFF,也就是所有表
都会建立在共享表空间。
-----
innodb_stats_on_metadata
决定了MySQL在什么情况下会刷新innodb表的统计信息