我正在使用InnoDB。
如果我有数据
[PKID : ?] col1
---------------
[PKID : 1] 7
[PKID : 2] 7
[PKID : 3] 5
[PKID : 4] 5
[PKID : 5] 7
并且具有col1的B + Tree索引。它会是这样的:
5(PKID : 3 or 4) - 5(PKID : 3 or 4) - 7 (PKID : 1 or 2 or 5) - 7 (PKID : 1 or 2 or 5) - 7 (PKID : 1 or 2 or 5)
我想知道聚集索引总是由PKID按这样排序:
5(PKID : 3) - 5(PKID : 4) - 7 (PKID : 1) - 7 (PKID : 2) - 7 (PKID : 5)
谢谢。
答案 0 :(得分:0)
原则上,InnoDB不需要在二级索引中排序PK。对于辅助索引中的每条记录,它调用Handler_read_rnd
以从PRIMARY索引获取字段。
但是对于最佳读取,它可能会对它进行排序。
应该可以检查一下。在从辅助索引读取的SELECT之后检查Handler_read_rnd_next
是否增加。如果是这样,那么PK值也会被排序。