Sql性能优化之LIKE模糊查询

古城微笑少年丶 2022-06-09 13:23 816阅读 0赞

我们在写sql的时候应该尽量避免在一个复杂查询里面使用 LIKE ‘%parm1%’—— 由于parm1前面用到了“%”,因此该查询必然走全表扫描,导致相关列的索引无法使用,除非必要,否则不要在关键词前加%,
如果后台逻辑必须使用’%parm1%’,可以考虑以下解决办法:

  1. 修改前台程序——把查询条件的供应商名称一栏由原来的文本输入改为下拉列表,用户模糊输入供应商名称时,直接在前台就帮忙定位到具体的供应商,这样在调用后台程序时,这列就可以直接用等于来关联了。
  2. 直接修改后台——根据输入条件,先查出符合条件的供应商,并把相关记录保存在一个临时表里头,然后再用临时表去做复杂关联
    例如:
    select * from 商品表 where name like 'Java%'
    这是个模糊查询,会用到索引,请大家记住,用like进行模糊查询时,如果第一个就是模糊的匹配符,比如wherenamelike‘%java’,那么在查询时不会走索引。在其他情况下,不论用了多少个%,也不论%的位置,只要不出现在第一个位置,那么都能用到索引。

发表评论

表情:
评论列表 (有 0 条评论,816人围观)

还没有评论,来说两句吧...

相关阅读

    相关 like模糊多条件查询

    一: like 最基本的实现模糊匹配的语句,但一次只能匹配一种候选模式(like "%content%"),若要对多个候选进行模糊匹配,则需要写多次like,然后以or连