index
查询时是否使用了创建的select
?索引:
events (page,notuniqueid,type,timestamp);
SQL语句:
SELECT *
FROM events
WHERE type = 'comment' AND TIMESTAMP > $time AND PAGE = '$page'
LIMIT 1
这个查询会使用索引吗?
发布于 2014-09-01 09:24:09
要了解查询是如何执行的,请使用解释查询计划运行它
> EXPLAIN QUERY PLAN SELECT * from events WHERE type='comment' AND TIMESTAMP > $time AND PAGE = '$page' LIMIT 1
0|0|0|SEARCH TABLE events USING INDEX MyLittleIndex (page=?)
在这种情况下,只能使用索引的第一列,因为notuniqueuid
列上没有查找。
一个更好的索引(用于此查询)将在(page,comment,timestamp)
上。
(见SQLite查询规划器.)
发布于 2022-09-30 08:55:33
一旦您使用了@CL所描述的EXPLAIN QUERY PLAN
,您可能想确切地看到您有哪些索引.
SELECT name, tbl_name FROM sqlite_master WHERE type = 'index'
https://stackoverflow.com/questions/25602606
复制相似问题