您好,登录后才能下订单哦!
本篇内容介绍了“数据库索引优秀的原因有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
数据库索引通常很糟糕。只有在设计和有效地使用时才实现数据库索引的权力。否则,索引是磁盘空间和数据库性能的纯粹浪费。但是你不想浪费磁盘空间,所以让我们快速通过一些您需要正确设计和使用索引所需的内容。
只有一个原因创建数据库索引 - 仅在数据库上提供现有或将来的查询负载,即必须根据当前或预期的使用设计索引。所有主要数据库都提供了一种监控索引使用的方法。
SQL查询中的WHERE子句过滤数据。索引在基于某些关键列以预定义的顺序存储数据时,在滤除数据中有助于滤除数据。如果查询使用这些键列,将使用索引,滤波器将更快。
当在Where子句中引用密钥列时,索引的存在不保证其使用情况。因此,您必须确保正在使用索引。大多数数据库都有一个名为查询引擎的组件,该组件决定了许多执行计划中的哪一个来确保查询的最快结果。
查询引擎伴随着解释命令,帮助我们获取执行计划并列出计划的每一步的成本。
数据库支持只有少量数据类型。已创建所有数据类型以提供特定目的。如果您不使用旨在服务该目的的数据类型,您将在数据库上放入额外的负载以进行隐式铸造,额外的磁盘空间等。
避免的简单方法是使用DateTime来存储日期和时间,使用整数来存储整数。不要使用VARCHAR将所有内容从数字存储到JSON对象。大多数数据库现在支持JSON作为本机数据类型。这意味着您可以使用SQL有效地存储和检索来自数据库中的JSON对象的数据。
索引创建必须在利用磁盘空间,增加管理开销和增加查询性能之间进行平衡。您无法创建索引以将空间保存为数据库查询性能。您还无法在所有列上创建索引以提供所有查询。它不像那样工作。
您必须通过识别以下内容来检查查询工作负载 -
用于过滤Filter数据的列。
用于联结Join表的列。
用于排序Order数据的列。
用于分组Group数据的列。
用于过滤,Join,Oder或Group的组合使用的列。
这五件事将决定需要创建多少个索引,索引列应该在索引中有什么组合,优先顺序。
请注意,Column_P上的索引IDX_A,Column_Q DESC与
Column_Q中的索引IDX_A,列P或,
index idx_b在column_p desc上,列q
还要确保您使用一些工具或脚本来标识数据库中是否存在重复索引。
知道不使用索引时
谨防样品条款的诱惑。这是一个指数杀手。知道索引的第一列必须始终存在于要使用的查询的过滤器,订单,加入或组操作中。如果您使用LACE子句使用索引过滤数据,则您应该知道您无法期望索引在类似于“%的东西”中的内容。
当数据库引擎无法隐式地映射数据类型,字符集或索引列的排序时,也没有使用索引。有关此内容的更多详细信息,并查找更多关于索引的限制,请使用此链接。
“数据库索引优秀的原因有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。