有sqlite表结构:
![1]:https://i.stack.imgur.com/Hp1lp.png
我创建了两个索引,第一个是:
CREATE INDEX atc_index ON category (
ATC
);
第二个是:
CREATE INDEX atc_index ON category (
id,
ATC
);
因为id是主整数键,所以id是rowid。因此我认为这两个指数是一样的。但我发现这两个索引在同一个查询上花费的时间不同。平均而言,第一个指数成本的时间是第二个指数成本的十倍。 SQL查询是否重要或有其他原因
答案 0 :(得分:0)
两个索引都是排序列表,每个条目包含ATC值和rowid。
但是,第一个索引按ATC排序,而第二个索引按rowid排序。这意味着后者仅用于搜索rowid值,该值不需要以索引开头。