【问题标题】:SQLite FTS3 inconsistent performanceSQLite FTS3 性能不一致
【发布时间】:2010-04-29 04:29:36
【问题描述】:

大约 100k 行的表。

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

为什么会有这么大的下降?

【问题讨论】:

标签: android sqlite fts3


【解决方案1】:

“chicken *”中的通配符可以有效地忽略,因为它完全匹配任何标记。搜索是反向索引中的简单查找。

“chicken f*”中的通配符需要查找所有以 f 开头的单词,并且还包含单词 chicken 的条目。这是可以理解的更复杂和更慢。

【讨论】:

    猜你喜欢
    • 2017-05-05
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多