Consider: sqlite> CREATE TABLE test1(a, b); sqlite> CREATE INDEX test1_idx ON test1(a, b ASC); sqlite> EXPLAIN QUERY PLAN SELECT * FROM test1 ORDER BY a, b; QUERY PLAN `--SCAN TABLE test1 USING COVERING INDEX test1_idx sqlite> EXPLAIN QUERY PLAN SELECT * FROM test1 ORDER BY a, b DESC; QUERY PLAN |--SCAN TABLE test1 USING COVERING INDEX test1_idx `--USE TEMP B-TREE FOR RIGHT PART OF ORDER BY
The first one uses the index for all sorting, but the second one only uses it for sorting a, not b. I feel like the descending sort could make use of the index too, just reading the b sections backwards to get the right order. Is there something I'm overlooking that would make this sort of optimization impractical or otherwise a bad idea? _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users