如何理解在index
查询运行时是否使用了创建的select
?
我的任务的具体示例:
指数:
events (page,notuniqueid,type,timestamp);
SQL语句:
SELECT *
FROM events
WHERE type = 'comment' AND TIMESTAMP > $time AND PAGE = '$page'
LIMIT 1
此查询会使用索引吗?
答案 0 :(得分:1)
要了解查询的执行方式,请使用EXPLAIN QUERY PLAN:
运行查询> 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)
。