2

具有约 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

为什么会有如此大的跌幅?

4

1 回答 1

2

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

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

于 2010-06-20T22:39:25.053 回答