MySQL索引设计原则及常用索引差异的探讨

MySQL索引设计原则及常用索引差异的探讨
索引定义:存储在磁盘上的一个独立的数据库结构,它包含数据表单中所有记录的引用指针。

数据库索引的设计原则:

为了使索引更有效,您必须考虑哪些字段创建索引,并创建哪些字段上创建索引的索引类型

那么指数设计原则是什么呢

1。选择唯一性索引

惟一索引的值是惟一的,可以更快地使用索引来确定记录。

例如,学生表的中学编号是一个独特的领域。建立这个领域的独特索引可以很快地确定学生的信息。

如果你使用一个名字,有可能是一个谐音,从而降低了查询速度

2。为经常需要排序、分组和联合操作的字段建立索引

您经常需要字段,如按顺序、按组、不同和联合操作,以及排序操作浪费大量的时间。

如果为其建立索引,则可以有效地避免排序操作。

三.为经常作为查询条件的字段建立索引

如果字段经常用于查询条件,则字段的查询速度将影响整个表的查询速度,

这样一个字段的索引可以提高整个表的查询速度。

4。限制索引的数量

索引的数量不是越多越好,每个索引需要占用磁盘空间,索引越多,所需的磁盘空间就越大。

当表被修改时,对索引的重构和更新是非常麻烦的,索引越多,更新表就越浪费时间。

5。尝试使用数据较少的索引

如果索引的值很长,查询的速度会受到影响。例如,char(100)类型字段的全文

检索所需的时间必须大于char(10)类型字段所需的时间。

6。使用前缀尽可能多地索引

如果索引字段的值很长,最好使用值的前缀来索引。例如,全文检索的文本和blog类型字段

这将是浪费时间,如果只检索到字段前面的几个字符,可以提高检索速度。

7。删除不再使用或很少使用的索引

当更新表中的数据或更改数据的使用方式时,可能不需要一些原始索引。

成员应定期查找这些索引并删除它们,从而减少索引对更新操作的影响。
8。不应该对小表进行索引;在包含大量列时不考虑索引,也不需要搜索非空值。
----------------------------------------------------------

MySQL索引相关常识:

经常用来过滤记录的字段。

1。主键字段,系统自动创建主键的索引;

2。唯一键字段,系统自动创建相应索引;

3定义为外键的字段。外键约束;

4。用于在查询中连接表的字段;

5。通常用作字段顺序的字段的字段;

索引占用磁盘空间,创建不必要的索引只会造成浪费。

三。索引的创建必须考虑到数据的操作方式。

1。内容很少变化,经常被查询,为它创建一些索引并不重要;

2。常规的、常规的变化表,你需要仔细的创建索引是必要的;

四、主键和唯一键的区别

1。域域组作为主键不能为空。唯一密钥可以。

2。在一个表中只能有一个主键,同时存在多个唯一键。

逻辑设计上的最大差异是,主键在逻辑设计中通常被用作记录标签,这也是建立起来的。

主键的唯一含义和唯一密钥仅保证域域组的唯一性。

五、综合指数和单项指数

复合索引是一个多字段联合索引,它经常需要这些字段的组合来再次查询条件。

唯一的索引主要是主键ID索引,存储结构顺序与物理结构一致。

如:创建表索引idx(A,B)

按A排序,同一个由B排序,所以当你查找A或AB时,

你可以使用这个索引。但是当你只查B时,索引对你没有帮助。也许你可以跳过去找它。

---------------------------------------------
添加和删除索引:
1,表的主键和外部键必须索引。

2、具有数据量超过300w表应该被索引。

三.经常与其他表相连的表,应该在连接字段上进行索引。

4。WHERE子句中经常出现的字段,尤其是大表的字段应该被索引。

5,索引应该建立在高选择字段上。

6,索引应该建立在小字段上,而不为大文本字段或超长字段索引。

7。综合指数的建立需要仔细分析,一个单一的字段索引被认为是可能的,而不是:

a,复合索引中主列字段的正确选择通常是一个更好的选择字段。

B、复合索引的几个字段经常出现在WHERE子句中吗单字段查询非常小吗如果是,则可以建立复合索引;否则,将考虑单个字段索引;

c,如果复合索引中包含的字段经常出现在WHERE子句中,则它们被分解成多个单字段索引。

如果复合索引包含超过3个字段,请仔细考虑它的必要性,并考虑减少复杂字段。

e,如果在这些字段上有一个字段索引和一个复合索引,则复合索引通常可以被删除。

8,频繁的数据操作表,不要建立太多的索引;

9、删除无用索引,避免对执行计划产生负面影响;

这些都是一些常见的标准索引,索引的建立必须谨慎,并对各指标的必要性,应仔细分析,并建立了索引的基础。因为太多的指标和不足和不正确的索引是无用的性能:每个指标建立在表增加存储成本,和指数将增加插入、加工成本删除和更新操作。此外,过多的复合指标通常有单字段索引的情况下没有价值。相反,当添加或删除时,它们也会降低数据的性能,特别是对于频繁更新的表。

以上是关于MySQL和之间的共同指标差异的指标设计的原则,这是所有萧边分享你的内容。我希望能给你一个参考,希望你能得到很多支持
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部