作者:天堂寨旅游2013_668 | 来源:互联网 | 2023-09-04 16:40
一、索引的类型索引类型有多种,哈希、BTREE、全文索引等,其实不管什么类型,都是为了在特定业务场景下方便快速查找数据的算法。显然书本开头的目录是要占用几页纸的,建立索引也是要消
转自: http://blog.csdn.net/pengsidong/article/details/62104703,有添加
索引就像书的目录,就像新华字典的拼音、部首检查,帮助人们快速找到需要的内容。
当数据表中的记录达到几十w级别时,索引的作用非常明显。
一.索引类型
索引类型有很多种,包括散列、BTREE和全文索引,但实际上这是一种便于在特定业务场景中快速搜索数据的算法。
例如散列索引、key-value格式,最简单,书的目录也相似。
有一本书,我们就知道文章的标题是找到这篇文章读。 如果没有目录,翻遍整本书寻找标题。
但是,如果单独提取标题并设为key,则将页码设为value,就可以迅速找到内容。
很明显,书的开头目录要消耗几页纸,编制索引也要消耗资源。
BTREE索引是另一种算法,使用对应于每个业务场景的索引更有效率。
正如新华字典的目录与普通书的目录不同,新华字典可以通过拼音或部首的检索方法快速查找字在第几页,这也是一种“索引”
也有全文索引等,但这里不说明。 例如,考虑一下solr、elasticsearch使用的算法
二、如何编制索引
其实这应该没有明确的定义,只能根据具体的业务来考虑。
1、索引并不是越多越好。 索引消耗资源。 有些字段信息如果不经常查询和索引,反而会影响效率。
如果把某本书书中的人名、地名等全部列入目录,目录可能占整本书的1/3,而且读者经常使用文章标题目录反而不好
2、相对来说,表格中经常查询使用的字段需要索引;
3、请勿对经常更改的数据进行索引。 对经常更改的字段进行索引反而会降低性能。
4、小数据量表建议不加索引;
5、索引一般应添加到搜索条件字段中; 例如,必须将其添加到where、order by子句中的常用字段中