我正在努力解决各种数据库索引之间的差异。我为自己创建了一个小例子,我不知道我是否正确理解了所有内容。
假设我们有一个这样的虚构数据库表:
addr col1 col2
===============
1 a b
2 c b
3 a c
4 d d
5 c a
6 a b
7 c b
8 d d
9 a c
Run Code Online (Sandbox Code Playgroud)
addr
这是相应元组的物理位置。这是我对单列、多列和覆盖索引的外观的理解(不是物理上的,而是概念上的):
create index on col1
a - 1, 3, 6, 9
c - 2, 5, 7
d - 4, 8
create index on (col1, col2)
a b - 1, 6
a c - 3, 9
c a - 5
c b - 2, 7
d d …
Run Code Online (Sandbox Code Playgroud)