【发布时间】:2019-03-01 22:00:32
【问题描述】:
使用 Sqlite3,我正在尝试执行如下查询:
选择 *
来自数据
其中 instr(filepath,'.txt') != 0
我想索引这个查询以加快速度。
我尝试创建如下索引:
创建索引 data_instr_filepath 关于数据(instr(文件路径,'.txt'));
但是,“解释查询计划”仍然显示我正在执行表扫描。
这在 sqlite 中可行吗?我发现的基于表达式的索引的示例似乎仅限于长度函数并将两列相乘。
更新:
感谢 Mike 的回答,我将查询重构为不使用不等式,并且能够创建一个匹配它的索引。以下是我最终使用的索引:
create index data_instr_filepath_txt on data(instr(filepath,'.txt'));
create index data_instr_filepath_substr on data(substr(filepath,0,instr(filepath,'.')));
【问题讨论】:
标签: sqlite