索引优缺点

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

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

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

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


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


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


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


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


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

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

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


 


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


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


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


 

三、创建方向索引的准则

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


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


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



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


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



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


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


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

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

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

(0)
上一篇 2022年5月26日 下午3:00
下一篇 2022年5月26日 下午3:00


相关推荐

  • JavaScript跨域请求

    JavaScript跨域请求个人博客 打开链接 1 什么是跨域 Js 为了安全有一个限制 不允许跨域访问 1 如果两个 url 的域名不同 2 Url 相同 端口不同也是跨域 3 Ip 不同也是跨域 2 解决跨域的问题可以使用 jsonp 解决跨域的问题 1 在 js 中不能跨域请求数据 js 可以跨域请求 js 片段 2 可以把数据包装成 js 片段 可以把数据使用 js 方法来包装 形成一条方法的调用语句 3 可以

    2026年3月18日
    1
  • mac clion 激活码-激活码分享

    (mac clion 激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlS3…

    2022年3月25日
    95
  • imx8开发之~源码编译

    imx8开发之~源码编译首先要下载相关的工具链 Inadditionto thefollowing sudoapt getinstalluu dev sudoapt getinstallzl devliblz dev sud

    2026年3月26日
    3
  • 图文详解 MapReduce 工作流程

    图文详解 MapReduce 工作流程前言本文隶属于专栏 1000 个问题搞定大数据技术体系 该专栏为笔者原创 引用请注明来源 不足和错误之处请在评论区帮忙指出 谢谢 本专栏目录结构和参考文献请见 1000 个问题搞定大数据技术体系正文 MapReduce 编程模型 MapReduce 编程模型开发简单且功能强大 专门为并行处理大规模数据量而设计 接下来 通过一张图来描述 MapReduce 的工作过程 如图所示 关于 MapReduce 编程模型的更多细节请参考我的这篇博客 MapReduce 编程模型到底是怎样的 整体流程

    2026年3月18日
    2
  • pytest的assert_assert中文

    pytest的assert_assert中文前言断言是写自动化测试基本最重要的一步,一个用例没有断言,就失去了自动化测试的意义了。什么是断言呢?简单来讲就是实际结果和期望结果去对比,符合预期那就测试pass,不符合预期那就测试failed

    2022年7月31日
    10
  • c语言平方根求和用sqrt函数,sqrt函数 Excel怎么使用平方根函数SQRT

    c语言平方根求和用sqrt函数,sqrt函数 Excel怎么使用平方根函数SQRT在统计数据的时候,我们可能会要对着一个数据进行开平方,那么在Excel当中sqrt函数就非常重要了,可是这个函数究竟要怎么使用呢?今天我们就一起来了解一下吧。sqrt函数——Excel怎么使用平方根函数SQRT第一步,桌面上打开一个Excel文档第二步,文档打开的主界面第三步,平方根函数SQRT只有1个参数,number第四步,我们举例,来更好地说明,第五步,输入完整的SQRT函数第六步,回车后,…

    2022年6月10日
    33

发表回复

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

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