![]() |
1
2
有了一个指数,从性能的角度来看,两者应该基本上是等价的。索引可用时的基本过程是索引查找以获取匹配的行,然后获取数据页。第一个在一个查询单元中执行四次。第二个对一个id执行四个查询单元。 如果没有索引,第一个应该更快——如果每次都需要从磁盘读取表,则速度应该是原来的四倍。或者,如果表适合可用内存,并且后续扫描使用的是热数据页缓存,则以增量方式加快速度。 |
![]() |
2
2
在第二个查询中,分别查询表。对于每个
如果没有索引,每次读取的表都必须是全表扫描,这两种方法之间的性能差异将更大。 因此,第一次查询将更快。 |
![]() |
3
0
第一个会更快。您可以通过分析看到:
因此,即使实际执行速度很快(因为查询使用索引),union中单独查询的开销也是存在的。 |
![]() |
Community wiki · SQL语法新手 1 年前 |
|
KateMak · 是否将多行中的多列与唯一id组合? 1 年前 |
![]() |
Karuna · SQL中列内的筛选器[重复] 1 年前 |
![]() |
Irvan Affandy · 为另一个选择选择声明的键 1 年前 |
![]() |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
![]() |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |