sqlite确定是否使用了索引

时间:2014-09-01 09:20:51

标签: sql database sqlite indexing

  1. 如何理解在index查询运行时是否使用了创建的select

  2. 我的任务的具体示例:

  3. 指数:

      events (page,notuniqueid,type,timestamp);
    

    SQL语句:

      SELECT * 
      FROM events 
      WHERE type = 'comment' AND TIMESTAMP > $time AND PAGE = '$page' 
      LIMIT 1
    

    此查询会使用索引吗?

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)

(见The SQLite Query Planner。)