MYSQL慢查询

MySQL慢查询日志是MySQL提供的一种日志记录,它用来记录执行时间超过指定参数(long_query_time)的SQL语句。通过定位分析慢查询日志,我们可以找到优化SQL语句的方法,提高数据库性能。

1.启用慢查询日志

修改MySQL配置文件(my.cnf或者my.ini),添加或者更新以下配置项

[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2

这里设置long_query_time为2秒,意味着所有执行时间超过2秒的查询都会被记录到慢查询日志中。log_queries_not_using_indexes设置为1表示即使查询执行时间没有超过long_query_time值,但没有使用索引的查询也会被记录。

2. 分析慢查询日志

分析慢查询日志可以使用MySQL自带的mysqldumpslow工具,或者第三方工具如Percona Toolkit中的pt-query-digest。

使用mysqldumpslow:

# 查看慢查询日志中的查询次数最多的语句
mysqldumpslow -s c -t 10 /var/log/mysql/mysql-slow.log
 
# 查看执行时间最长的查询
mysqldumpslow -s l -t 10 /var/log/mysql/mysql-slow.log
 
# 查看某数据库的慢查询
mysqldumpslow -s c -t 10 -d database_name /var/log/mysql/mysql-slow.log

#查询时间排序(-s t),显示出执行时间最长的前10个查询。
mysqldumpslow -s t -t 10 /var/log/mysql/mysql-slow.log

3. 使用EXPLAIN来分析查询执行计划


找到慢查询后,使用EXPLAIN或EXPLAIN ANALYZE(MySQL 8.0.18及以上版本)命令来分析具体的SQL查询执行计划。这可以帮助你理解MySQL是如何执行这些查询的,包括是否使用了索引、表的扫描方式、是否有需要优化的地方等。
 

4. 优化SQL语句

分析慢查询日志中的SQL语句后,根据分析结果对SQL语句进行优化,比如创建合适的索引、改变查询方式等。

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极客星辰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值