我正在使用sqlite3对mondial数据库进行性能分析。一个测试用例,我必须比较使用和不使用索引的性能(它也不应使用sqlite_autoindex)。
我发现此链接:Bash Reference Manual非常有用,但是大多数答案都涉及SQL SERVER。但是对于SQLITE3我需要它。 (我尝试过PRAGMA选项,但没有结果)。
答案 0 :(得分:1)
它埋在SELECT的语法图中,但是有一种方法-在NOT INDEXED
子句中将FROM
与表名一起使用:
sqlite> CREATE TABLE foo(bar);
sqlite> CREATE INDEX foo_idx ON foo(bar);
sqlite> EXPLAIN QUERY PLAN SELECT * FROM foo WHERE bar = ?;
QUERY PLAN
`--SEARCH TABLE foo USING COVERING INDEX foo_idx (bar=?)
sqlite> EXPLAIN QUERY PLAN SELECT * FROM foo NOT INDEXED WHERE bar = ?;
QUERY PLAN
`--SCAN TABLE foo
如您所见,第一个查询使用索引,第二个查询不使用索引。