SQL优化


文章目录

为什么要进行SQL优化

原因:性能低、执行时间太长、等待时间太长、SQL语句欠佳(连接查询)、索引失效、服务器参数设置不合理(缓冲、线程数)

优化

a.SQL :
例如自己编写了一个SQL语句

select dinstinct  ..from  ..join ..on ..where ..group by ...having ..order by ..limit ..

数据库会按照一下顺序来解析:

from .. on.. join ..where ..group by ....having ...select dinstinct ..order by limit ...

Sql解析顺序

b.SQL优化, 主要就是 在优化索引:

  • 索引: 相当于书的目录
  • 索引: index是帮助MYSQL高效获取数据的数据结构。索引是数据结构(树:B树(默认)、Hash树…)

在这里插入图片描述

右边的B树就是索引,是有顺序的。比如我要查询age=33的ID:
不加索引 从上往下需要查询5次。
加了索引只需要查找3次
第一次:找到50,33比50小,去50的左边寻找
第二次:33比23大,去23的右边
第三次:33=33即为结果

索引的优缺点

优点:
1.提高查询效率(降低IO使用率)

2.降低CPU使用率 (…order by age desc,因为 B树索引 本身就是一个 好排序的结构,因此在排序时 可以直接使用)

缺点:
1.索引本身很大, 可以存放在内存/硬盘(通常为 硬盘)
2.索引不适用于以下情况: a.少量数据 b.频繁更新的字段 c.很少使用的字段
3.索引会降低增删改的效率(增删改 查)


文章作者: fFee-ops
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 fFee-ops !
评论
  目录