单独索引:会用到索引,但是有时候效率低下,不如联合索引。
首先在创建完索引之后,先运行:runstats on table schema.tablename and detailed indexes all
运行完统计后再分析你要执行的SQL语句,看索引能否用的上。
DB2是按照成本来进行语句执行的优化的,只要你正确的运行了统计,一般情况下,会优先选择使用索引。
也有部分情况下不会使用索引。比如某个cloumn,同时创建了在索引1和索引2中,那DB2到底会选择索引1和索引2,就要看他认为使用哪个索引的成本低了。
很多不使用索引的情况是因为你们有做完正确的统计。
所以首先建议你先针对该表做一下完整的统计,命令见上。
1.只对唯一性较强并且使用较频繁的字段建立单个索引,比如分别对key、a 建立索引。目前上海移动经分仓库就是按这个大的原则建立的。因为联合索引的话对条件查询的顺序打乱就无效了,单独建立索引用来适应大多数开发情况,且能较少数据冗余。
2.针对某些特别慢的SQL条件建立索引,这种情况是考虑某些SQL的及时性考虑,及时性高的,SQL的结果集重要的,单独优化。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)