问一下有对数据查询有研究的大师,一般情况下,使用sql进行模糊查询的时候,喜欢使用like '%abc%'。但个人感觉这应该不是最优的。有没有哪位资深人士给提供一个最优解决方案?
非资深,随便谈。
模糊查询通常有下面三种
1.前匹配: like %abc
2.后匹配: like abc%
3.全匹配: like %abc%
只有第一种,可以用到DB的索引(如果你有的话)。
后两种是全表走查,所以性能会差。也没什么能优化的。
这里的差是相对的,比如我有过千万级数据的模糊查询的实现。条件是那个查询不常用;异步显示查询结果;客户也明白且接受那个速度。
如果成为问题且需要解决,网上搜关键字“全文检索”。
大体上是DB层面上的话,
或者脱离开DB,上全文检索引擎比如Lucene之类的。
(需要注意中文和英文的区别)