如何优化SQLite索引进行查询

时间:2012-09-12 15:56:37

标签: sqlite

我有一个SQLite表

CREATE TABLE T(
    CategoryCode NVARCHAR(64) NOT NULL,
    DateTime     DateTime NOT NULL,
    ItemCode     NVARCHAR(64) NOT NULL,
    ItemName     NVARCHAR(64) NOT NULL,
    ItemValue    NUMERIC(28, 4) NOT NULL
)

问题是如何优化以下查询的索引:

SELECT
 CategoryCode
,ItemCode
,ItemName
,SUM(ItemValue) as TotalValue
FROM T
WHERE CategoryCode = 'Code1' 
AND DateTime < '2012-01-04 00:00:00'
GROUP BY ItemCode

谢谢!

1 个答案:

答案 0 :(得分:2)

对于确切的查询,您需要T(CategoryCode, DateTime)T(DateTime, CategoryCode)上的索引,具体取决于哪个列比另一列更具选择性。

但是,为单个查询创建索引是不明智的,而对表的所有访问都没有更全面的视图。

e.g。例如,您可能会发现,如果表中的大多数数据都有CategoryCode = 'Code1',则只应在DateTime列上创建索引。