对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大指标——第二部分