Wie wir alle wissen, speichert innodb nur Primärschlüsselwerte im Sekundärindex, was bedeutet, dass wir den Clustered-Index-B+-Baum erneut durchlaufen müssen, um Zeilendatensätze zu erhalten.
Warum speichern Sie den Zeilenzeiger nicht direkt im Sekundärindex, um den zusätzlichen Suchaufwand zu reduzieren?
没有“行指针”。
PRMARY KEY
的列具有在数据的 BTree 中定位行的功能。当然,通过 PK 查找可以说比“行指针”慢。但更新、删除、块分割等都会自动处理。 (参见 Bill 的评论。)这使代码更加简单。而且,在某些情况下,速度更快。
更快的简单示例:Given
在这个例子中,索引的BTree有完整的答案;无需访问数据的 BTree。因此,该索引被称为此
SELECT
的“覆盖”。