首页 > 解决方案 > SQLite中的普通索引和FTS有什么区别

问题描述

两者都使用索引来加速字符串搜索。那么有什么区别呢?

文档CREATE INDEX中没有tokenization提到MATCH这个。

标签: sqliteindexingfull-text-search

解决方案


这让我认为文本列上的普通索引只会加快“=”查询

一般来说,文本列上的标准 B-Tree 索引可以加速SARGable查询,例如:

SELECT col FROM tab WHERE col = 'value'
SELECT col FROM tab WHERE col LIKE 'value'
SELECT col FROM tab WHERE col LIKE 'value%'

但不是:

SELECT col FROM tab WHERE col LIKE '%value%';  
SELECT col FROM tab WHERE col LIKE '%value';
SELECT col FROM tab WHERE UPPER(col) = 'VALUE';

他们仍然可以从索引扫描而不是读取表中受益,但它不会像索引搜索那样快。


推荐阅读