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之类的。
    (需要注意中文和英文的区别)

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

报告相同问题?

悬赏问题

  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 有偿四位数,节约算法和扫描算法
  • ¥15 VUE项目怎么运行,系统打不开
  • ¥50 pointpillars等目标检测算法怎么融合注意力机制
  • ¥20 Vs code Mac系统 PHP Debug调试环境配置
  • ¥60 大一项目课,微信小程序
  • ¥15 求视频摘要youtube和ovp数据集