- 索引就是类似书本的目录一样,拿字典来说,索引存储的记录地址相当于字典的页数,索引存储的键值相等于字典的某个字。我们可以在目录里面快速地浏览,找到某个关键字,我们在翻到具体的页数看字的解释。
- 举例:我们设置主键id为索引,那么索引树就存了键值为这个ID,且存有这个ID的地址,当想要查找某个ID时,只需要查找这个索引树,找到后,再通过地址去找到某一个行的记录。
- 为什么要用索引?说白了,就是为了增加查找的效率。
- 索引也是用一张表来维护的,而且对于增加和更新和删除操作,都会使得索引树重新整理,因此不是索引越多索引越好,要在合适的场景使用,比如在一个读数据比较多的项目,就可以加索引。
- 索引为什么能够提高查找的效率?因为索引采用了B树的结构,时间复杂度比较小,为logN.
- 索引的优势和劣势
- 优势
- 提高检索的效率,减少数据库的IO次数,因为数据库的数据是保存在磁盘上的。
- 因为B树的原因,索引的字段是有顺序的,减少了排序的成本,减少了CPU的消耗
- 劣势
- 索引也是一张表,也是需要存储空间的
- 降低了更新表的的速度,比如插入,更新,删除时,都会调整索引信息。
- 优势
- 索引是存储引擎实现的,所以不同的存储引擎,支持的索引不一定相同。