Fed*_*oli 2 mysql innodb index
实证测试表明,在 InnoDB 表上进行这样的查询:
SELECT indexed_column FROM tab ORDER BY indexes_column ASC;
Run Code Online (Sandbox Code Playgroud)
比ORDER BY ... DESC
. 为什么会这样?
注意:我使用 MySQL 5.7 和 5.6 进行了测试。所以这与 8.0 中的升序索引无关。
相关文章MySQL 8.0 Labs – Descending Indexes in MySQL的作者 Chaithra Gopalareddy在评论中解释了为什么向后索引扫描比向前扫描效率稍低:
感谢您对新功能表现出兴趣。在〜15%的成本效益 的正向扫描可以归因于在InnoDB中做有利于对反向扫描正向扫描优化。
例如:在页面内扫描 - 页面中的记录形成一个单向链表。要获取下一条记录,前向扫描只遵循链接,因为后向扫描需要从头(第一个槽)开始,直到当前槽/记录,以识别前一条记录。
除了上述之外,还有一些更多的影响因素,例如,在页面切换期间 -当前在 innodb 中定义的页面锁存规则有利于向前扫描而不是向后扫描。
所以有两个因素:
归档时间: |
|
查看次数: |
1608 次 |
最近记录: |