假设我有一个文本文件,其中包含约3,000,000个英文句子(每行将被视为一行);当我们想要尽可能快地执行此查询时,保留这么多字符串的最佳设计是什么?
select Sentence from BigTable where Sentence like '% book %'
实际上此查询会搜索使用单词book
的所有行;
到目前为止我做了什么:
创建普通表;结果:
创建表并在Sentence
列上创建索引;结果:
答案 0 :(得分:2)
如果单词不在字符串的开头,则正常索引无法帮助。
要加快全文搜索,请创建full-text search index:
CREATE VIRTUAL TABLE MyTable USING FTS4 (content TEXT);
SELECT docid FROM MyTable WHERE content MATCH 'book';