假设数据 表T (a,b,c) rowid 为物理位置 rowid a b c (1) 1 1 1 (2) 2 1 13 (3) 2 2 14 (4) 1 3 3 (5) 2 3 12 (6) 1 2 5 (7) 2 3 9 (8) 1 2 2 (9) 1 3 6 (10) 2 2 11 (11) 2 2 8 (12) 1 1 7 (13) 2 3 15 (14) 1 1 4 (15) 2 1 10 当你创建一个索引 create index xxx on t(a,b), 则索引文件逻辑上等同于如下 a b rowid 1 1 1 1 1 12 1 1 14 1 2 6 1 2 8 1 3 4 1 3 9 2 1 2 2 1 15 2 2 3 2 2 10 2 2 11 2 3 5 2 3 7 2 3 13 当select * from T where a=1 and b=3 的时候, 数据库系统可以直接从索引文件中直接二分法找到A=1的记录,然后再B=3的记录。 但如果你 where b=3 则需要遍历这个索引表的全部!
索引是因为B+树结构 所以查找快 如果单看第三列 是非排序的
56,677
社区成员
56,708
社区内容
加载中
试试用AI创作助手写篇文章吧