第244天学习打卡(知识点回顾 索引)

Posted doudoutj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第244天学习打卡(知识点回顾 索引)相关的知识,希望对你有一定的参考价值。

知识点回顾

数据库 -------- 索引

索引本质数数据结构,排好序的快速查找数据结构,可以提高查找效率。数据分身之外,数据库还维护着一个满足特定查找算法的数据结构,这是数据结构可以在这些数据结构的基础上实现高级查找算法,这种数据结构就是索引

索引的分类

主键索引

单值索引 :一个索引只包含单个列,一个表可以有多个单列索引。如果字段会被经常用来检索就可以单值索引。

复合索引:一个索引包含多个列,如电话簿上姓 + 名字,最好不超过5个字段

唯一索引:所有列的值必须唯一,但是允许有空值。

普通索引和唯一索引可以称为辅助索引。

劣势:

实际上索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录,索引列也是要占用空间的。

虽然索引大大提高了查询的速度,但是会降低更新表的速度,如对表进行insert,update,delete。因为更新表示,mysql不仅要保存数据,还要保存一下索引文件,每次更新添加了索引列的字段,都会调整因为更新所带来的键值变化后的索引信息。

索引只是提高效率的一个因素,如果Mysql有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询。

什么时候需要建立索引

主键自动建立唯一索引

频繁作为查询条件的字段应该创建索引

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

频繁更新的字段不适合创建索引,因为每次更新不单单是更新了记录还会更新索引

where条件里用不到的字段不创建索引

单键/组合索引的选择问题,在高并发倾向创建组合索引

查询中排序的字段,排序字段若通过索引去访问将大大提高排序速度

查询中统计或者分组字段(group by)

B站:尚硅谷Linux运维面试题(大厂linux面试题攻略)_哔哩哔哩_bilibili

以上是关于第244天学习打卡(知识点回顾 索引)的主要内容,如果未能解决你的问题,请参考以下文章

第215天学习打卡(知识点回顾 MySQL索引失效)

第217天学习打卡(MySQL知识点回顾 覆盖索引 ACID原则)

第216天学习打卡(MySQL知识点回顾)

第300天学习打卡(知识点回顾 hashmap如何实现线程安全)

第300天学习打卡(知识点回顾 hashmap如何实现线程安全)

第300天学习打卡(知识点回顾 hashmap如何实现线程安全)