什么是SQL Like运算符的合适替代品以提高性能?

时间:2008-12-31 01:18:39

标签: performance windows-mobile sql-server-ce memory-management sql-like

3 个答案:

答案 0 :(得分:5)

如何预处理(一次)items表(并且需要处理添加到其中的每个新条目),以创建具有

的单词出现表
CREATE TABLE WordItemOccurance
(
    [Word] varchar(50) not null,

    ItemId int not null
        constraint FK_Items references ItemTable(ID)
)

迭代所有项目,分成单独的单词,并在发现时将条目添加到出现表中。

在[Word]上创建聚集索引并加入ItemId上的Item表应该很快。

答案 1 :(得分:4)

我投票赞成Mitch Wheat's回答,但我也会尝试一些技巧来测试效果。

我很担心有一个表[char],[int],你可能仍然会发现自己正在执行大量无意义的字符串比较,特别是如果你在这个新表上使用%word%。 (重复但不匹配我们的搜索条目)。

我可能会选择

进行实验
Words
-----
chars  | word_id 

WordsToEntry
------------
word_id | entry_id 

并查看数据库开销是否值得缓解此问题(我无法测试,抱歉)

答案 2 :(得分:1)

您可以尝试使用布隆过滤器。

  1. wikipedia
  2. using bloom filters