0
点赞
收藏
分享

微信扫一扫

MySQL索引优化

1.索引是啥?

简单来说是可以快速查找数据的数据结构。

数据结构就是存储数据的结构,例如数组,链表...

在数据库系统中还维护着满足特定查找算法的数据结构,这些数据结构以某种引用指向表中是数据,这些数据结构就是索引,它让我们可以用算法来查找数据。

MySQL索引优化_数据结构

假设有个user表,通过name字段找李白,没有索引的话就会全表扫描,从头到尾遍历完,数据多的时候效率很低;有了索引就像有了目录。

2.索引好不好?

可以提高检索效率,降低IO成本,降低排序成本,降低CPU的消耗;

索引是要占空间的,对表更新的时候MySQL不仅要更新数据,还要更新索引信息,保存索引文件。

总的来说查询效率提升了,更新(增删改)效率降低了。

3.要不要建索引?

创建索引的情况

(1)主键自动建立唯一索引;

(2)频繁作为查询条件的字段应该创建索引(where后面的语句);

(3)查询中与其他表关联的字段,外键关系建立索引;

(4)多字段查询下倾向创建组合索引;

(5)排序字段通过索引访问大大提高排序速度;

(6)查询中统计或者分组字段。

不推荐索引的情况

(1)表记录太少;

(2)经常增删改的表;

(3)where条件里用不到的字段不要索引。

4.索引类型四种

可以随表创建,也可以单独创建;

MySQL索引优化_字段_02

MySQL索引优化_字段_03

5.怎么看SQL语句的性能?

explain关键字,重点看type、key、rows、extra

type里

MySQL索引优化_sql索引优化_04

MySQL索引优化_数据_05

extra里

尽量避免Using filesort(排序时没使用索引)Using temporary(分组时没使用索引)的出现;

6.性能不行怎么优化?




举报

相关推荐

0 条评论