【发布时间】:2016-06-07 21:56:16
【问题描述】:
我有一个简单的表“标签”,其中包含一个键和一个值列。键始终是字符串,值可以是字符串、int64 或双精度值。
我目前没有任何真实数据可供测试。但是我很好奇 value 列的索引使用情况。我已将该列定义为 TEXT 类型 - 当 int64 或 double 类型绑定到语句时,SQLite 是否仍然能够使用 value 列上的索引?
这是测试表:
CREATE TABLE "tags" ("key" TEXT,"value" TEXT DEFAULT (null) );
INSERT INTO "tags" VALUES('test','test');
INSERT INTO "tags" VALUES('testint','1');
INSERT INTO "tags" VALUES('testdouble','2.0');
通过以下方式分析查询时,我看到了额外的“整数”和“关联”条目:
explain SELECT value FROM tags where key = "testint" and value >= 1
但我没有看到索引使用有任何差异(例如,总是使用 idxgt)。但我宁愿有一个明确的答案,而不是依靠小测试数据的错误假设。
【问题讨论】:
标签: sqlite