金融其它 sql优化

如何优化like '%db2china%'这种谓词的SQL查询

众所周知,这种语句走不了索引,那么我们该如何尽可能优化该语句
select
         d.aid,
         d.name,
         d.article
from 
        db2china
where
        d.name like '%chao%'
参与28

27 同行回答

drdb2 drdb2 系统工程师 se
Not really. It depends: Optimizer can go index scan.显示全部
Not really.
It depends: Optimizer can go index scan. 收起
互联网服务 · 2013-11-01
浏览963
欧阳峰 欧阳峰 其它 Freelancer
回复 5# wangzk0206 where name like '%chao' union all where name like ‘chao%  '这样就可以了显示全部
回复 5# wangzk0206


where name like '%chao'
union all

where name like ‘chao%  '


这样就可以了 收起
IT其它 · 2013-11-01
浏览1015
hongyehongye hongyehongye 联盟成员 数据库管理员 哈尔滨银行
回复 5# wangzk0206    额。。是的,没注意,多谢提醒显示全部
回复 5# wangzk0206


   额。。是的,没注意,多谢提醒 收起
银行 · 2013-11-01
浏览957
wangzk0206 wangzk0206 联盟成员 数据库管理员 scrcu
回复 4# hongyehongye    欧阳锋的那个sql和楼主的sql不是等价的吧!显示全部
回复 4# hongyehongye


   欧阳锋的那个sql和楼主的sql不是等价的吧! 收起
银行 · 2013-11-01
浏览1032
xiewenpeng xiewenpeng 数据库开发工程师 河南众品
like 应该是优化器本身的限制,显示全部
like 应该是优化器本身的限制, 收起
互联网服务 · 2013-10-31
浏览1090
欧阳峰 欧阳峰 其它 Freelancer
1. name上建立索引2. where   d.name like '%chao' and d.name like 'chao%'这样就走范围索引了3.当然name字段符合建立索引要求,否则还是做全表显示全部
1. name上建立索引
2. where   d.name like '%chao' and d.name like 'chao%'
这样就走范围索引了
3.当然name字段符合建立索引要求,否则还是做全表 收起
IT其它 · 2013-10-30
浏览1071
hongyehongye hongyehongye 联盟成员 数据库管理员 哈尔滨银行
可以通过全文本搜索的方式进行查询,9.7之后版本支持分区表的全文本搜索。可以参考http://www.ibm.com/developerworks/cn/data/tutorials/dm-0810shettar/section4.html显示全部
可以通过全文本搜索的方式进行查询,9.7之后版本支持分区表的全文本搜索。可以参考
http://www.ibm.com/developerworks/cn/data/tutorials/dm-0810shettar/section4.html 收起
银行 · 2013-10-30
浏览1054

提问者

sunyangnj
技术经理 苏宁金融研究院
擅长领域: 服务器分布式系统区块链
评论757

相关问题

相关资料

问题状态

  • 发布时间:2013-10-30
  • 关注会员:1 人
  • 问题浏览:17348
  • 最近回答:2014-06-03
  • X社区推广