目录
MySQL 数据库性能优化之缓存优化
Innoddb引擎优化
- 强烈推荐采用innodb引擎,default-storage-engine=Innodb
- 调整innodb_buffer_pool_size大小,考虑设置为物理内存的50%-60%左右
- 根据实际需要设置inno_flush_log_at_trx_commit,sync_binlog的值。如果要需要数据不能丢失,那么两个都设为1.如果允许丢失大一点数据,则可分别设为2和0,在slave上可设为0
- 设置innodb_file_per_table = 1,使用独立表空间
- 设置innodb_data_file_path = ibdata1:1G:autoextend,不要使用默认的10%
- 设置innodb_log_file_size=256M,设置innodb_log_files_in_group=2,基本可满足90%以上的场景;
- 不要将innodb_log_file_size参数设置太大,这样可以更快同时又更多的磁盘空间,丢掉多的日志通常是好的,在数据库崩溃后可以降低恢复数据库的事件
——————————————————————————————————————————————————
Myisam引擎优化
——————————————————————————————————————————————————
- 设置long_query_time = 1记录那些执行较慢的SQL,用于后续的分析排查;
——————————————————————————————————————————————————
- 根据业务实际需要,适当调整max_connection(最大连接数)
max_connection_error(最大错误数,建议设置为10万以上,而open_files_limit、innodb_open_files、table_open_cache、table_definition_cache这几个参数则可设为约10倍于max_connection的大小;)不要设置太大,会将数据库撑爆
——————————————————————————————————————————————————
tmp_table_szie、
max_heap_table_size、
sort_buffer_size、
join_buffer_size、
read_buffer_size、
read_rnd_buffer_size
等都是每个连接session分配的,因此不能设置过大
- 建议关闭query cache功能或降低设置不要超过512M
- 如果采用MyISAM引擎,需要key_buffer_size加大。
参考链接
https://www.abcdocker.com/abcdocker/952
http://www.2cto.com/database/201605/506272.html
http://www.jb51.net/article/108173.htm