MySql配置优化
MySql对内存的使用
MySql内存配置位物理内存的70%左右
大部分情况下使用innodb作为表存储引擎
以下参数配置在my.cnf中
1. innodb的缓冲池配置
innodb_buffer_pool_size
一般配置服务器总内存的60~70%
2. innodb log 日志缓存配置
innodb_log_buffer_size 这个不宜配置太大,因为日志缓存每秒钟刷新一次
3. 配置缓冲池个数:
innodb_buffer_pool_instances 默认一个
4. 在提交事务的时候,是否刷新日志缓冲(重要,对性能影响较大)
innodb_flush_log_at_trx_commit 有3个值:
0:不会主动触发日志缓冲写入磁盘。
1(默认):每次提交事务的时候,同时会把日志缓冲刷新到磁盘。
2:每次提交事务的时候,会把日志缓冲刷新到磁盘,但是他不是同时进行的,而是每秒钟刷新一次。
怎么配置考虑两个点:
1. 考虑安全性:如果对数据安全性较高,配置成1。
2. 考虑性能:建议配置成2, 再高并发事务下,如果执行事务的同时就把缓存中刷新到磁盘,就会大量的对磁盘进行写操作,导致大量的IO。
5.indodb读写IO的线程数
innodb_read_io_threads
innodb_write_io_threads
默认都是4个 和CPU线程数相关
6.独立表空间配置
innodb_file_per_table 默认是打开的
7.查询缓存
query_cache_size