问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

2. 创建索引有什么优点和缺点?在哪些列上适合创建索引?在哪些列上不...

发布网友 发布时间:2022-04-28 22:42

我来回答

1个回答

热心网友 时间:2022-04-14 20:32

数据库中索引的优缺点
为什么要创建索引呢?这是因为,创建索引可以大大提高系统的性能。第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

也许会有人要问:增加索引有如此多的优点,为什么不对表中的每一个列创建一个索引呢?这种想法固然有其合理性,然而也有其片面性。虽然,索引有许多优点,但是,为表中的每一个列都增加索引,是非常不明智的。这是因为,增加索引也有许多不利的一个方面。第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

索引是建立在数据库表中的某些列的上面。因此,在创建索引的时候,应该仔细考虑在哪些列上可以创建索引,在哪些列上不能创建索引。一般来说,应该在这些列上创建索引,例如:在经常需要搜索的列上,可以加快搜索的速度;在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构;在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。

同样,对于有些列不应该创建索引。一般来说,不应该创建索引的的这些列具有下列特点:第一,对于那些在查询中很少使用或者参考的列不应该创建索引。这是因为,既然这些列很少使用到,因此有索引或者无索引,并不能提高查询速度。相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。第二,对于那些只有很少数据值的列也不应该增加索引。这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。增加索引,并不能明显加快检索速度。第三,对于那些定义为text, image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少。第四,当修改性能远远大于检索性能时,不应该创建索引。这是因为,修改性能和检索性能是互相矛盾的。当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因此,当修改性能远远大于检索性能时,不应该创建索引。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
有效的教学激励策略有哪些 手机充电嗡嗡响怎么回事 手机在充电时发出嗡嗡作响 手机充电头快充有嗡嗡的声音 影视多媒体设计真的不好找工作吗 专科学影视多媒体技术好就业吗 影视多媒体技术专业就业怎么样 影视多媒体技术就业率 胆结石病人在输血后半个月,全身开始发痒是什么原因,怎样能够止痒呢?谢 ... 有关胆结石手术后的恢复,求教 王一博海飞丝直播感动粉丝,不会说话的他为何能走进粉丝心? 直播王导播台的功能怎么样?直播效果好不好啊? 日本装修节目《全能住宅改造王》是哪年开播的? 网络电视为啥没有直播了? 为什么网络电视没有中央五套节目 社内相亲电脑在哪看 全能直播王pc版选择高清总卡是怎么回事 华为荣耀50连上热点没有信号? 华硕天选2怎么连接不上荣耀50SE热点 全能直播王内置直播源怎么导出来 荣耀手机如何连热点 手机apk全能直播王怎么导出节目源 荣耀50扫一扫连接wifi 斗鱼全能王阿舜为什么不播了? 网铬机顶盒全能直播王总是天响应是啥原因 荣耀50开不了热点 如果用网线当电话线做RJ11接口线线的两端线序怎么接 全能直播王 maciptv怎么看不到港台电视 华为荣耀个人热点怎么设置自动连接 全能直播王台少了看不电影台了 在mysql当中创建索引有什么限制 什么字段类型不能建立索引 快手极速版被人举报怎么解开 不能在视图上创建索引,不能在规则、缺省、触发器的定义中引用视图。是什么意思 在以下哪几种表空间不能建立数据对象(表和索引)? arcmap 数据库不能创建索引为什么 MySQL最多可建立多少索引和索引的限制 下列可以建立索引的数据类型 昨天的事情可以称为旧事和故事和以往的事情吗? 熬夜对大学生来说有什么危害? 请问记忆力下降是怎么回事?为啥昨天的事情今天忘光了,除了自己是谁以外,什么都不记得了,所有我弄了个 你知道昨天下午杰夫发生什么事情了吗英语翻译 固态硬盘从256换成120的电脑是不是变慢了? 求人工翻译:“我现在正在想着我昨天想着的将来会发生的事。” 为什么最近记得起5.6岁的事情,就仿佛发生在昨天?本人今年20岁了, 腊肠怎么做好吃呢 128g固态硬盘256g区别 128G和256G的固态硬盘在速度上有什么区别? 为什么有些固态硬盘是120G 480G……整数G有些是128G 256G的。请问有什么区别吗 家味康公明腊肠1000克的味道如何?