一、整体思路
MYSQL优化首先应该定位问题,可能导致MYSQL低性能的原因有:业务逻辑过多的查询、表结构不合理、sql语句优化以及硬件优化,从优化效果来看,这四个优化点的优化效果依次降低:理清业务逻辑能够帮助我们避免不必要的查询,合理设计表结构也能帮助我们少查询数据库。
二、定位慢查询
1、定位慢查询
命令查看慢查询次数:show status like 'slow_queries';
使用该命令只能查看慢查询次数,但是我们没有办法知道是哪些查询产生了慢查询,如果想要知道是哪些查询导致的慢查询。
必须开启慢查询日志:set global slow_query_log=ON;
修改慢查询时间:set global long_query_time=5;
指定慢查询存储的方式:set global log_output=file;
指定慢查询日志的文件:set global slow_query_log_file='slow_query.log';
记录没有索引的查询:set global log_queries_not_using_indexes=ON;
此时我们在mysql中运行命令show variables like 'slow_query%';