SQL反模式笔记16——模糊查询

目标:模糊查询

反模式:

  like

  缺点:性能太差,无法使用索引,必须全表遍历。

合理使用反模式:

  数据量小、条件简单时可以用。

解决方案:

  使用特殊的搜索引擎而不是sql

  1、数据库扩展,各大数据库都有对全文检索的解决方案,但是配置复杂。

  2、使用第三方搜索引擎,比如lucene...

  3、实现自己的搜索引擎:

    使用反向索引,就是一个所有可能被搜索的单词列表。再将与单词批量的数据的id保存到一个交叉表里。

    一旦有新的搜索单词,就使用like查询结果,并将结果保存到交叉表里,这样下次就不必like了。

    一旦有新的文档入库,就需要用触发器(或者定时)去填充交叉表。

posted @ 2012-05-08 10:31  日暮乡关何处是  阅读(373)  评论(0编辑  收藏  举报