对MySQL5.7.17做了哪些优化

 


 

开启慢查询日志

my.cnf
slow_query_log=1
long_query_time=1

SET GLOBAL long_query_time = 1;
默认值10,单位秒
设置后需重新开启一个mysql客户端才能查看到修改后的值

 

max_connections

默认值151
my.cnf
max_connections = 1000

set global max_connections=1000;

 

innodb_buffer_pool_size

默认值134217728,就是128M
如何确定 innodb_buffer_pool_size 足够大,数据是从内存读取而不是硬盘?

 

SHOW GLOBAL STATUS LIKE 'innodb_buffer_pool_pages_%';

 

发现 Innodb_buffer_pool_pages_free 为 0,则说明 buffer pool 已经被用光,需要增大 innodb_buffer_pool_size

改为256M

mysql5.7可以动态修改
mysql> set global innodb_buffer_pool_size=268435456;
记得把my.cnf也修改了,避免重启服务器之后之前的设置失效
在mysqld下增加
innodb_buffer_pool_size=268435456

mysql> show engine innodb status\G;

CREATE TABLE mydb.mytablenew LIKE mydb.mytable;INSERT INTO mydb.mytablenew SELECT * FROM mydb.mytable;ALTER TABLE mydb.mytable RENAME mydb.mytablezap;ALTER TABLE mydb.mytablenew RENAME mydb.mytable;DROP TABLE mydb.mytablezap;

innodb_log_file_size

innodb_log_file_size = 64M
默认值50331648,即48M

 

参考文档

服务器性能优化和Mysql性能优化

 

MySQL 性能监控4大指标——第一部分

 

MySQL 性能监控4大指标——第二部分