面试时遇到面试官问了一个问题让说一下索引的原理,但是作者对索引的了解仅仅是“加索引之后查询快”,一阵懵和尴尬之后回来查询了一下索引相关的知识点,记录一下。
一、为什么要给表加上主键?
更快的查询数据
二、为什么加索引后会使查询变快?
索引的建立使用的是平衡树(b tree)数据结构,查询的时候时间复杂度从O(n)降至O(log)
三、为什么加索引后会使写入、修改、删除变慢?
为了保证索引的正确,修改的是时候会重建索引,重建索引的时候要消耗时间。
四、什么情况下要同时在两个字段上建索引?
索引分为聚集索引和非聚集索引,主键生成的是聚集索引,其他字段生成的是非聚集索引。非聚集索引的工作方式是在非聚集索引的平衡树上查找到数据对应的主键,然后根据主键在聚集索引上查找对应的数据。速度减慢。有一种例外可以不使用聚集索引就能查询出所需要的数据, 这种非主流的方法 称之为「覆盖索引」查询, 也就是平时所说的复合索引或者多字段索引查询。如果某些字段需要查询频率比较高,可以创建一个复合索引进行查询。
引用:
https://www.cnblogs.com/aspwebchh/p/6652855.html
数据库索引
最新推荐文章于 2019-04-13 12:03:27 发布