java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > MySQL配置参数过程

MySQL性能优化之配置参数过程

作者:一只IT攻城狮

优化MySQL配置:调整连接数、超时时间及缓冲区大小,提升性能,建议修改back_log为128-512,interactive_timeout为7200,合理设置InnoDB参数及缓存策略

1、连接设置

show variables like ‘%max_connection%';
show status like ‘%Max_used_connections%';
Max_used_connections/max_connection <=85%

2、存储在堆栈中的连接数量

show variables like ‘%back_log%';

back_log 默认为50 建议修改为 128~512

3、数据连接关闭前等待时间

show variables like ‘%timeout%';

修改interactive_timeout wait_timeout 2项的值,默认为28800,建议修改为7200

4、索引缓冲区的大小

show status like ‘%read%';

索引未缓存命中率 key_read/key_request_reads =0.0010.01

5、查询缓冲区的大小(query_cache_size)

show variables like ‘%cache%';
show status like ‘%qcache%';

6、顺序读、随机读、排序、连接缓冲区的大小,每个线程独占,建议设置为16MB

show status like ‘%buffer%';
read_buffer_size
read_rnd_buffer_size
sort_buffer_size
join_buffer_size

7、表缓冲区大小

show status like ‘%tables%';

table_cache 根据 open_tables opented_tables 大小来调整

8、内存表和临时表

show status like ‘%table%';
max_heap_table_size
tmp_table_size

内存表超过临时表大小,才需要调整内存表的大小

9、磁盘上临时表大小

show status like ‘%tmp%';
(Created_tmp_disk_tables/Created_tmp_tables)*100<25%

10、缓存线程的数量

show variables like ‘%tmp%';
thread_cache_size

11、并发线程的数量

show variables like ‘%thread%';
innodb_thread_concurrency (cpu+磁盘)数量的2倍

12、其他

数据和索引缓冲区的大小 innodb_buffer_pool_size 物理内容的80%

日志缓冲区的大小 innodb_log_buffer_size 1~8MB

数据字段和其他数据结构的大小 innodb_additional_mem_pool_size 20MB

事物处理机制 innodb_flush_log_at_trx_commit

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文