SQL反模式笔记16——模糊查询
目标:模糊查询
反模式:
like
缺点:性能太差,无法使用索引,必须全表遍历。
合理使用反模式:
数据量小、条件简单时可以用。
解决方案:
使用特殊的搜索引擎而不是sql
1、数据库扩展,各大数据库都有对全文检索的解决方案,但是配置复杂。
2、使用第三方搜索引擎,比如lucene...
3、实现自己的搜索引擎:
使用反向索引,就是一个所有可能被搜索的单词列表。再将与单词批量的数据的id保存到一个交叉表里。
一旦有新的搜索单词,就使用like查询结果,并将结果保存到交叉表里,这样下次就不必like了。
一旦有新的文档入库,就需要用触发器(或者定时)去填充交叉表。