组合索引的一些知识点
来源:互联网 发布:建筑节能分析软件 编辑:程序博客网 时间:2024/06/05 22:55
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限制...)怎样才能建立经济的索引。我实在不清楚。
试验如下:
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
- 组合索引的一些知识点
- 最近的一些知识点索引
- [sql server] 组合索引的一些tips
- 索引的两个知识点
- MySQL索引的知识点
- 索引的知识点
- 索引合并和组合索引的比较
- 索引合并和组合索引的比较
- 索引合并和组合索引的比较
- 组合索引的特征[摘]
- MongoDB组合索引的优化
- MongoDB组合索引的优化
- 组合索引适用的情况
- MongoDB组合索引的优化
- MongoDB组合索引的优化
- mysql组合索引的经验总结
- 面试知识点---数据库的索引
- Hibernate的一些知识点
- 解决 mac ssh空闲 连接断开问题
- Android触摸屏事件派发机制详解与源码分析一(View篇)
- java一些概念
- gitHub控制版本的常用命令
- 图的广度优先遍历
- 组合索引的一些知识点
- Ajax入门学习
- UI控件之Button(按钮)和ImageButton(图像按钮)
- Java 高级—— IO 基础
- gulp build遇到的问题
- 第一次去游泳
- 碎片笔记 2016.06.19
- leetcode 10 Regular Expression Matching
- 数据存储类别