1.慢查询设置
-
慢查询设置(临时)
-- 查看是否开启了慢查询日志 show variables like 'slow%'; -- 开启慢查询日志 set global slow_query_log = on; -- 更改日志路径 set global slow_query_log_file = '/data/mydata/app1-slow.log'; -- 查看慢查询时间临界值(单位秒) show variables like '%long%'; -- 设置慢查询时间临界值 set long_query_time = 0.1;
-
慢查询设置(永久):vim /etc/my.cnf,重启服务器生效
[mysqld] slow_query_log = 1 long_query_time = 0.1 slow_query_log_file = /data/mydata/app1-slow.log
2.sql语句执行过程解析
-- 查看性能详情是否开启
show variables like '%profiling%';
-- 开启性能记录功能
set profiling = on;
-- 查看性能的记录
show profiles;
-- 查看语句的执行性能详情
show profile for query 101;
3.sql优化
- 尽量避免使用select * from,尽量精确到想要的结果字段
- 尽量避免条件使用or
- 记得加上limit限制行数,避免数据量过大消耗性能
- 使用模糊查询时,%在前面会使索引失效
- 小心条件字段类型的转换导致索引失效,字符类型尽量加上’'单引号