索引

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容