索引优缺点

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

大家好,又见面了,我是你们的朋友全栈君。

一、为什么要创建索引呢(优点)?

创建索引可以大大提高系统的性能。


第一, 
 
 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。


第二, 
 
 可以大大
加快数据的检索速度
,这也是创建索引的最主要的原因。


第三, 
 
 可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。


第四, 
 
 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。


第五, 
 
 通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
 

二、建立方向索引的不利因素(缺点)

也许会有人要问:增加索引有如此多的优点,为什么不对表中的每一个列创建一个索引呢?这种想法固然有其合理性,然而也有其片面性。虽然,索引有许多优点,但是,为表中的每一个列都增加索引,是非常不明智的。这是因为,增加索引也有许多不利的一个方面。


 


第一, 
 
 
创建索引和维护索引要耗费时间
,这种时间随着数据量的增加而增加。


第二, 
 
 
索引需要占物理空间
,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。


第三, 
 
 当对表中的数据进行增加、删除和修改的时候,
索引也要动态的维护
,这样就降低了数据的维护速度。


 

三、创建方向索引的准则

索引是建立在数据库表中的某些列的上面。因此,在创建索引的时候,应该仔细考虑在哪些列上可以创建索引,在哪些列上不能创建索引。


一般来说,应该在这些列上创建索引。


第一, 
 
 在
经常需要搜索的列上,可以加快搜索的速度



第二, 
 
 在作为
主键
的列上,强制该列的唯一性和组织表中数据的排列结构;


第三, 
 
 在经常用在连接的列上,这些列主要是一些
外键,可以加快连接的速度



第四, 
 
 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;


第五, 
 
 在经常
需要排序的列
上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;


第六, 
 
 在经常使用在
WHERE子句
中的列上面创建索引,加快条件的判断速度。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141167.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Werkzeug Turorial「建议收藏」

    Werkzeug Turorial「建议收藏」Werkzeug不是一个framework,而是一个library,用来开发application和framework一个WSGI的application像这样:defapplication(environ,start_response):start_response(‘200OK’,[(‘Content-Type’,’text/plain’)])return[‘HelloWorld!’]一个WSGIapplication是一个可以调用的,有environ(dic

    2022年9月28日
    4
  • 软件易用性测试_易用性测试包含界面测试吗

    软件易用性测试_易用性测试包含界面测试吗软件易用性测试一、易用性概念软件易用性是软件质量体系中一个重要的质量特性。在各个标准体系中都有关于软件易用性的定义描述。在一些组织的标准定义中,易用性又被称为可用性。无论该特性名称和具体细节如何定义描述,所有关于易用性或者可用性的研究都是围绕着“用户对于产品的使用感受”这个中心展开的。 易用性(可用性)体现的是用户在使用过程中所实际感受到的产品质量。软件的易用性是由软件的人机交互界面来集中体现。界面的布局设计、操作逻辑与流程、交互信息的显示、帮助和索引文档…用户对于这些元素

    2025年7月24日
    2
  • J1939协议之通俗易懂—-简介

    J1939协议之通俗易懂—-简介J1939简介 J1939协议简介J1939协议是由美国汽车工程师协会(SAE)(SAE协会简介)定义的一组标准。J1939标准用于卡车、公共汽车和移动液压等重型车辆。在许多方面,J1939标准类似于旧版J1708和J1587标准,但J1939标准协议建立在CAN(控制器区域网络,ISO11898)上。物理层(J1939/11)描述了针对客车的电气接口。数据链路层描述…

    2022年5月1日
    316
  • 部门人员职位权限表设计图_职位设置

    部门人员职位权限表设计图_职位设置用户角色多对多 角色权限多对多用户部门多对多部门表 用户_部门表用户表 用户_角色表角色表  角色_权限表权限表 用户    用户_角色 (角色)    角色_菜单 菜单 — 支付 –退款 –转账 –提现 –充值 交易表账表详细账目表

    2022年9月28日
    2
  • 如何进入现在较火热的大数据领域,学习路线是什么?

    如何进入现在较火热的大数据领域,学习路线是什么?

    2021年7月3日
    90
  • PyCharm怎么汉化(iphone语言设置成中文)

    搜索不到可升级一下版本插件官方地址:https://plugins.jetbrains.com/plugin/13710-chinese-simplified-language-pack—-/versionsIEDA汉化PyCharm汉化WebStorm汉化通用

    2022年4月10日
    54

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号