作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设有两个表 table1
和 table2
,其中 table1
有 4 列,table2
有 10 列,但 table2
的前 4 列与 table1
相同。两个表中的第二列均表示 column2
已建立索引。通过索引搜索时,两个表的查找速度是否相同,或者列数较少的表(table1
)的查找速度会更快吗?
最佳答案
当 where 子句如下所示时,通常使用索引查找:
where column2 = <some value>
在这种情况下,表中的列数——行的大小应该对性能几乎没有影响。这种查询的工作方式是使用索引来标识需要返回的行。此阶段的操作仅使用索引,并且仅包含列值和行 ID。
识别行后,引擎需要在数据页上查找它们。如果只有一行,那么记录的大小没有区别。仅查找该记录的数据页(好吧,也可能有一些先行读取,但这也是相同的)。
唯一的潜在差异是当多行符合条件时。行越小,它们位于单个数据页上的可能性就越大。但是,如果您的表格很大并且只选择了几行,那么它们很可能位于不同的页面上。
如果表大于可用内存并且您从表中检索大量行,则可能会出现一种罕见的情况。这称为抖动,并且更可能发生在较宽的行上(因为它们占用更多的空间)。
因此,行的大小基本上对相对性能没有影响,除了带回额外行(如果有)的开销之外。
关于mysql - 两个具有相同行数的相同表上的相同索引是否会影响查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50890413/
现在我正在尝试实现 flash programming specification对于 PIC32MX。我正在使用 PIC32MX512L 和 PIC32MX512H。 PIC32MX512L最终必须
我是一名优秀的程序员,十分优秀!