首页 > 编程知识 正文

mysql 添加索引,简述索引的作用

时间:2023-05-04 13:21:55 阅读:60043 作者:3649

转自: 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子句中的常用字段中

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。