DB2 联合索引和单独索引

DB2 联合索引和单独索引,第1张

联合索引:比如你建立了(A,B),那么你查询条件为A或者A,B时会走索引,如果为B,就不会走索引

单独索引:会用到索引,但是有时候效率低下,不如联合索引。

首先在创建完索引之后,先运行:

runstats on table schema.tablename and detailed indexes all

运行完统计后再分析你要执行的SQL语句,看索引能否用的上。

DB2是按照成本来进行语句执行的优化的,只要你正确的运行了统计,一般情况下,会优先选择使用索引。

也有部分情况下不会使用索引。比如某个cloumn,同时创建了在索引1和索引2中,那DB2到底会选择索引1和索引2,就要看他认为使用哪个索引的成本低了。

很多不使用索引的情况是因为你们有做完正确的统计。

所以首先建议你先针对该表做一下完整的统计,命令见上。

1.只对唯一性较强并且使用较频繁的字段建立单个索引,比如分别对key、a 建立索引。目前上海移动经分仓库就是按这个大的原则建立的。

因为联合索引的话对条件查询的顺序打乱就无效了,单独建立索引用来适应大多数开发情况,且能较少数据冗余。

2.针对某些特别慢的SQL条件建立索引,这种情况是考虑某些SQL的及时性考虑,及时性高的,SQL的结果集重要的,单独优化。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11784139.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存