当我们在查询过程中遇到慢sql的时候会使用explain进行查找原因
慢sql的查找
首先开启慢sql日志记录
set global slow_query_log=on;
在系统中默认的慢sql执行时间为10秒(慢sql还与另一个因素有关系就是查询的记录数但默认值0)
设置慢sql时间指令
set long_query_time=xx; (以秒为单位)
满足条件的慢sql会被存放到/var/lib/mysql目录下的以主机名开头的 主机名-slow.log 文件中
我们可以通过mysqldumpslow指令来查看(这个指令不是sql命令在mysql目录下执行即可)
mysqldumpslow -s t -t 5 -a /var/lib/mysql/node0-slow.log
-s 表示以什么条件进行查看 t表示按执行时间进行查看
-t 表示查看的命令数 -a表是显示慢sql语句中字段的具体类型
explain的参数组成
table:在sql语句中有几张表explain的记录就会有几条
id:主要来记录select语句如果在一个语句中有两个select操作就会有2个id一个是1一个2 id越大越先执行在一条语句中id越小越好(有时候优化器会对查询语句进行优化,子查询有两个select会被优化成多表查询)