索引是数据库用于加速数据访问的一种数据结构,其基本原理是通过创建额外的数据结构来使得对数据的访问更加快速和高效
在关系型数据库中,通常使用b-tree或哈希表等索引结构
b-tree(b+树)是一种平衡树,可以高效的支持范围查找和顺序查找,适合于有序数据的存储
哈希表索引则可以实现o(1)的查找效率,但对于范围查询较为困难
在建立索引时,需要考虑索引的选择性,即不同索引值数量与总记录数值比,选择性高的索引更有利于提高查询效率,因为它可以减少需要扫描的数据量。但过多的索引也会导致资源浪费和维护成本增加
尽可能索引覆盖,尽可能使用索引列进行查询
减少磁盘io,只需要读取索引页,而不是数据页
减少数据传输,只需要从索引中获取所需的数据列,减少了从磁盘到内存的数据传输量
提高查询性能