索引

2019-04-24  本文已影响0人  屎倒淋头还嚼便

1、mysql索引类型:normal、unique、full text  

索引方式:btree、hash等等

2、什么时候使用索引?

索引提高了查询效率,但是降低了增删改的效率(这时需要维护索引表),如果一张表查询次数大于增删改的次数,

那么可以考虑在查询频率高的字段上建立索引。

3、如果某个字段建立了索引(比如索引方式为平衡树),就会生成一张索引表?该字段就会以BTree的数据结构存储在索引表中(每一个字段值对应其所在行的地址?),

当某个查询语句使用了该索引时,会先到索引表中查询到该字段,然后获取它对应的行的地址,

这样比全表搜索该字段的值要快。

4、组合索引有最左前缀的特点,比如一个组合索引有两个字段a b

那么实际的索引有两个

1)、a b

2)、a

select * from table where a = 'm' and b = 'n'; 

select * from table where a = 'm' ; // 这两个都使用了索引,但是where b = 'w'不会使用索引。

5、sql优化:

避免全表扫描,可以考虑在条件字段上添加索引

添加了索引之后,避免索引无效,比如条件字段值为null,可以在建表时不允许默认值为null

查询某个列时,不要返回不需要的列值,因为返回数据过多会降低效率。

上一篇下一篇

猜你喜欢

热点阅读