如何分析优化慢SQL

后端 潘老师 5个月前 (12-05) 112 ℃ (0) 扫码查看



本文主要讲解关于如何分析优化慢SQL相关内容,让我们来一起学习下吧!

前提:本篇文章中的慢SQL评判标准有两个
(1)每天出现10次且>200ms的SQL
(2)>1S的SQL

分析SQL语句

Q1: permission表中id是主键,请分析是否会全表扫描?

SELECT * FROM `permission` WHERE `resource_id` = ' 323346475' ORDER BY `id` DESC LIMIT 0, 15

A1: 是否全表扫描,主要取决于resource_id这个字段是否有索引.如果有索引,会使用resource_id来查找满足条件的行,在根据id排序。

Q2: permission表中id是主键,请分析是否会全表扫描?

SELECT * FROM `permission` WHERE `resource_id` = ' 323346475' ORDER BY `id` DESC LIMIT 0, 15

A2: 是否全表扫描,主要取决于resource_id这个字段是否有索引.如果有索引,会使用resource_id来查找满足条件的行,在根据id排序。

Q2: 已知有一个6亿的表a,一个3亿的表b,表b的主键id外联表a的tid,请给出SQL语句,最快地查询出满足条件的第50000到第50200中的这200条数据记录?
(1)如果

SELECT a.*, b.* FROM (  
  SELECT id FROM tableB ORDER BY id LIMIT 50000, 200
) AS b 
JOIN tableA a ON b.id = a.tid;

A2: 是否全表扫描,主要取决于resource_id这个字段是否有索引.如果有索引,会使用resource_id来查找满足条件的行,在根据id排序。

以上就是关于如何分析优化慢SQL相关的全部内容,希望对你有帮助。欢迎持续关注潘子夜个人博客(www.panziye.com),学习愉快哦!


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/back/12107.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】