-

后端必会,sql优化问题

前言

sql优化问题在面试经常会遇到,不仅如此,在项目中实实在在也是需要用到的,因为当你的数据库数量很大的时候,sql优化就显得很必要,不然查询一条数据用个好几秒这就很离谱了。

如何优化

建索引:

对一些常用的查询条件建立索引键,但是索引不能建太多,一般建议一张表3~5个索引;

防止索引丢失:

建立完索引之后就是如何使用这些索引字段了

1. 条件顺序问题:比如你有两个查询条件分别是data_state和name,其中name是建立了索引的,那么你必须得先执行name条件判断。

比如

# 正确
select * from user where name='zhangsan' and data_state=1

# 错误示范
select * from user where data_state=1 and name='zhangsan'

慢sql调优:

使用explan查看当前执行的sql是否进行了全表扫描等等;

访问类型type的常见类型

type类型从左至右,性能由最差到最好

ALLindexrangerefeq_refconst,systemNULL

=

0/255

佐贺偶像是传奇

人生如戏,戏如人生。==