如何建立索引的问题,快

表b是个上千万的普通表,下面where中的字段全是varchar类型,
其中status只有0,1,2这3个不同的值,type有1,8共8种值,date里面从14年1月到现在的时间,这个范围内的值,sql条件如下:
b WHERE   b.TYPE IN (1,2)  and
b.status = '0' and b.date < '2014-05-14 16:00:00'





1:如何建立索引??


2:in 不走索引怎么解决?
参与9

8同行回答

drdb2drdb2系统工程师se
要看select count(*) from b whereb WHERE   b.TYPE IN (1,2)  andb.status = '0' and b.date < '2014-05-14 16:00:00' ;返回多少rows。如果大量的rows返回(相对总rows而言), 即便create index, optimizer也不会采用:因为index通常在query small portion ...显示全部
要看
select count(*) from b where
b WHERE   b.TYPE IN (1,2)  and
b.status = '0' and b.date < '2014-05-14 16:00:00' ;
返回多少rows。

如果大量的rows返回(相对总rows而言), 即便create index, optimizer也不会采用:
因为index通常在query small portion of data才更有效。
最好db2advis一下,先看看optimizer有啥建议。收起
互联网服务 · 2015-05-16
浏览752
wangyaxwangyax软件开发工程师金融机构
in 不走索引怎么解决? 如果你是创建多个索引的话,db2可能选择它认为最优的一条索引走。当然,即便按照楼上的方法创建索引,在查询的时候可能也可能不走索引,这取决于通过你的条件筛选出来的记录数和总记录之间有多大的差异。这种差异越大走索引的可能性越大。...显示全部
in 不走索引怎么解决?

如果你是创建多个索引的话,db2可能选择它认为最优的一条索引走。

当然,即便按照楼上的方法创建索引,在查询的时候可能也可能不走索引,这取决于通过你的条件筛选出来的记录数和总记录之间有多大的差异。
这种差异越大走索引的可能性越大。收起
互联网服务 · 2015-05-15
浏览772

提问者

nanjing_2013
系统架构师北京卓望

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2015-05-15
  • 关注会员:1 人
  • 问题浏览:4182
  • 最近回答:2015-05-18
  • X社区推广