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
查询某个列时,不要返回不需要的列值,因为返回数据过多会降低效率。
网友评论