慢SQL调优-索引详解面试题


前言

最新的 Java 面试题,技术栈涉及 Java 基础、集合、多线程、Mysql、分布式、Spring全家桶、MyBatis、Dubbo、缓存、消息队列、Linux…等等,会持续更新。

如果对老铁有帮助,帮忙免费点个赞,谢谢你的发财手!

一、慢查询日志设置

1、开启慢查询日志,设置超过几秒为慢SQL语句,抓取慢SQL语句;
(阿里的ARMS监控平台直接就能查询到慢SQL)

show variables like "%query%"

< img1>

  • 1)参数log_queries_not_using_indexes :表示如果运行的SQL语句没有使用到索引,是否也被当作慢查询语句记录到慢查询日志中,OFF表示不记录,ON表示记录
  • 2)参数long_query_time :表示“多长时间的查询”被认定为“慢查询”,默认值为10秒,表示超过10秒的查询被认定为慢查询
  • 3)参数 slow_query_log :表示是否开启慢查询日志。开启:“> set global slow_query_log=on”关闭:“> set global slow_query_log=off ”
  • 4)参数slow_query_log_file:指定慢查询日志存储于哪个日志文件中,默认的慢查询日志文件名为“主机名-slow.log”,慢查询日志的位置为datadir参数所对应的目录位置。
    慢查询日志中给出了账号、主机、运行时间、锁定时间、返回行等信息,当日志文件越来越大,通过vi或cat命令不能很直观地查看日志,这时就可以使用MySQL内置的mysqldumpslow命令来查询:
mysqldumpslow -s r -t 5 /data/mysql/mysql_slow.log

查询返回记录集最多的5个慢查询SQL。

二、explain查看执行计划

2、通过explain查看SQL执行计划,重点关注type、key、rows、extra指标;创建索引并调整语句,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值