一个大约有 10 万行的表。
SELECT word FROM entries WHERE word MATCH '"chicken *"';
17 results in 46ms
SELECT word FROM entries WHERE word MATCH '"chicken f*"';
2 results in 5793ms
为什么下降这么大?
最佳答案
“chicken *”中的通配符可以有效地忽略,因为它完全匹配任何标记。搜索是反向索引中的简单查找。
“chicken f*”中的通配符需要找到单词以 f 开头且还包含单词 chicken 的所有条目。可以理解,它更复杂、更慢。
关于android - SQLite FTS3 不一致的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2734776/