组合索引的一些知识点

sysbase 5.0 表table1 字段:col1,col2,col3
试验如下:
1.
建立索引idx1 on col1
执行select * from table1 where col1='A'  使用idx1
执行select * from table1 where col1='A' and col2='B' 也使用idx1
2.
删除索引idx1,然后建立idx2 on (col1,col2)复合索引
执行以上两个查询,也都使用idx2
3.
如果两个索引idx1,idx2都存在
并不是 where col1='A'用idx1;where col1='A' and col2='B' 用idx2。
其查询优化器使用其中一个以前常用索引。要么都用idx1,要么都用idx2.

所以对一张表有没有必要同时建立一个单索引 on col1,和一个复合索引 on (col1,col2)?
(假设对这张表但条件查询,复合条件查询以后都要用到).

由此可见,是不是建立多字段(包含5、6个字段)的复合索引没有什么好处?
相对而言,建立多个窄字段(仅包含一个,或顶多2个字段)的索引可以达到更好的效率?
---我这里假设对这张表以后会进行各种使用几率类等的不同where条件的查询。


这是我对复合索引包含字段多少合适的疑问。以前各贴均认为根据估计的查询条件决定复合索引包含的字段。
但如果查询条件变化较大,(如有时用date限制,有时用sex限制...)怎样才能建立经济的索引。我实在不清楚。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值