热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

一、索引的类型索引类型有多种,哈希、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子句中的常用字段中


推荐阅读
author-avatar
天堂寨旅游2013_668
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有