索引就像书的目录,就像新华字典的拼音、部首检查,帮助人们快速找到需要的内容。
当数据表中的记录达到几十w级别时,索引的作用非常明显。
一.索引类型
索引类型有很多种,包括散列、BTREE和全文索引,但实际上这是一种便于在特定业务场景中快速搜索数据的算法。
例如散列索引、key-value格式,最简单,书的目录也相似。
有一本书,我们就知道文章的标题是找到这篇文章读。 如果没有目录,翻遍整本书寻找标题。
但是,如果单独提取标题并设为key,则将页码设为value,就可以迅速找到内容。
很明显,书的开头目录要消耗几页纸,编制索引也要消耗资源。
BTREE索引是另一种算法,使用对应于每个业务场景的索引更有效率。
正如新华字典的目录与普通书的目录不同,新华字典可以通过拼音或部首的检索方法快速查找字在第几页,这也是一种“索引”
也有全文索引等,但这里不说明。 例如,考虑一下solr、elasticsearch使用的算法
二、如何编制索引
其实这应该没有明确的定义,只能根据具体的业务来考虑。
1、索引并不是越多越好。 索引消耗资源。 有些字段信息如果不经常查询和索引,反而会影响效率。
如果把某本书书中的人名、地名等全部列入目录,目录可能占整本书的1/3,而且读者经常使用文章标题目录反而不好
2、相对来说,表格中经常查询使用的字段需要建立索引