我从源代码构建 sqlite3 以包含 FTS3 支持,然后在包含 150 万行数据的现有 sqlite 数据库中创建一个新表,使用
CREATE VIRTUAL TABLE data USING FTS3(codes text);
然后用
INSERT INTO data(codes) SELECT originalcodes FROM original_data;
然后查询每个表
SELECT * FROM original_data WHERE originalcodes='RH12';
这会立即返回,因为我在该列上有一个索引
FTS3 表上的查询
SELECT * FROM data WHERE codes='RH12';
耗时近 28 秒
有人可以帮助解释我做错了什么,因为我预计这会更快