yannischen 2012-12-20 16:28
浏览 387
已采纳

模糊查询的优化

问一下有对数据查询有研究的大师,一般情况下,使用sql进行模糊查询的时候,喜欢使用like '%abc%'。但个人感觉这应该不是最优的。有没有哪位资深人士给提供一个最优解决方案?

  • 写回答

1条回答 默认 最新

  • clxy大叔 2012-12-20 17:09
    关注

    非资深,随便谈。

    模糊查询通常有下面三种

    1.前匹配: like %abc
    2.后匹配: like abc%
    3.全匹配: like %abc%

    只有第一种,可以用到DB的索引(如果你有的话)。
    后两种是全表走查,所以性能会差。也没什么能优化的。
    这里的差是相对的,比如我有过千万级数据的模糊查询的实现。条件是那个查询不常用;异步显示查询结果;客户也明白且接受那个速度。

    如果成为问题且需要解决,网上搜关键字“全文检索”。
    大体上是DB层面上的话,

    • 用插件比如MySQL
    • 买付费功能比如Oracle(本来就死贵的来着)

    或者脱离开DB,上全文检索引擎比如Lucene之类的。
    (需要注意中文和英文的区别)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?