mysql慢查询记录

慢查询定位
开启慢查询日志:如果一个sql执行的时间超过了它指定的一个时间,那么便把这条sql记录在慢查询日志中。
看慢查询日志是否开启:show variables like ‘slow_query_log%’.
通过如下命令开启慢查询日志:
set global slow_query_log = on;开启慢查询日志
set global slow_query_log_file = ‘OAK-slow.log’; 指定日志文件名
set global log_queries_not_using_indexes = ON; 表示会记录没有使用索引的查询sql
SET long_query_time = 10;指定慢查询的阈值,单位是秒。如果sql执行时间超过阈值,就属于慢查询,记录在文件中。
查询慢查询日志:mysqldumpslow工具;使用文本打开。

慢查询优化
查询是否使用了索引,只表示一个sql的执行过程,并不代表这个sql的执行效率,列入一个sql中where id = 1,这个就使用到了主键索引,而且是单值查询,此时效率就会高,但是如果where id > 0,即使存在主键索引,但由于还是范围查找,全表臊面,效率也还是没有提高。而慢查询日志关注的是sql的执行时间,一个sql一旦执行时间超过了指定的阈值,那么就会出现在慢查询日志中,即使一个sql使用了索引,但是它的效率不高执行不快的话,也是会出现在慢查询日志中。

我们在关注索引时,不要只关注到是否使用了,还要关注索引是否减少了扫描表的行数,如果扫描行数少了,那么效率才会得到提升。对于一个大表来讲,不仅仅要去创建索引,还是提高过滤性。过滤性好,执行效率才会高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值