文
章
目
录
章
目
录
本文主要讲解关于如何分析优化慢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),学习愉快哦!