社区
Oracle
帖子详情
请问大家在什么情况下使用组合索引?
huangxueliang_2008
2009-12-26 09:02:39
请问大家在什么情况下使用组合索引?
在组合索引的情况下,我查询的时候只用组合索引的其中一个字段,请问这种情况下会走索引吗?
...全文
814
11
打赏
收藏
请问大家在什么情况下使用组合索引?
请问大家在什么情况下使用组合索引? 在组合索引的情况下,我查询的时候只用组合索引的其中一个字段,请问这种情况下会走索引吗?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
etsilence
2010-05-07
打赏
举报
回复
[Quote=引用 8 楼 budong0000 的回复:]
mark
另如果col1,col2,col3都建有独立index, 那么组合查询 col1 = xx and col2 = yy , 那么独立索引和组合索引 哪个更合适呢?
[/Quote]
应该是组合索引更好点,维护成本低。
另外7楼所说的索引跳跃扫描 的执行条件是 所要查询的字段全部已经建立在索引中才行,而且索引跳跃扫描的成本比其他索引扫描方式要更低。
budong0000
2010-05-07
打赏
举报
回复
daydayup
budong0000
2010-05-07
打赏
举报
回复
补充下, 数据量150w , sql server08
budong0000
2010-05-07
打赏
举报
回复
mark
另如果col1,col2,col3都建有独立index, 那么组合查询 col1 = xx and col2 = yy , 那么独立索引和组合索引 哪个更合适呢?
小灰狼W
2009-12-28
打赏
举报
回复
只要数据库版本不过低,不需要在where 条件中加上前导列。
是否走索引由cbo根据成本估算来决定。一般在查询经常需要几个列的条件时对这几个字段加组合索引
[Quote=引用 :]
在Oracle中可以创建组合索引,即同时包含两个或两个以上列的索引。在组合索引的使用方面,Oracle有以下特点:
1、 当使用基于规则的优化器(RBO)时,只有当组合索引的前导列出现在SQL语句的where子句中时,才会使用到该索引;
2、 在使用Oracle9i之前的基于成本的优化器(CBO)时, 只有当组合索引的前导列出现在SQL语句的where子句中时,才可能会使用到该索引,这取决于优化器计算的使用索引的成本和使用全表扫描的成本,Oracle会自动选择成本低的访问路径;
3、 从Oracle9i起,Oracle引入了一种新的索引扫描方式——索引跳跃扫描(index skip scan),这种扫描方式只有基于成本的优化器(CBO)才能使用。这样,当SQL语句的where子句中即使没有组合索引的前导列,并且索引跳跃扫描的成本低于其他扫描方式的成本时,Oracle就会使用该方式扫描组合索引
[/Quote]
碧水幽幽泉
2009-12-27
打赏
举报
回复
[Quote=引用 2 楼
acmain_chm 的回复:]
huangxueliang_2008 (huangxueliang_2008)
'截至2009-12-26 21:02:39 用户结帖率0.00%
[/Quote]
studying_
2009-12-27
打赏
举报
回复
不及时结贴不是好习惯。
1、请问大家在什么情况下使用组合索引?
==>出现复合属性的时候。
2、在组合索引的情况下,我查询的时候只用组合索引的其中一个字段,请问这种情况下会走索引吗?
==>组合索引的第一个字段是引导列,只有他被引用的时候索引才会走
BenChiM888
2009-12-26
打赏
举报
回复
不及时结贴不是好习惯。
1、请问大家在什么情况下使用组合索引?
==>出现复合属性的时候。
2、在组合索引的情况下,我查询的时候只用组合索引的其中一个字段,请问这种情况下会走索引吗?
==>组合索引的第一个字段是引导列,只有他被引用的时候索引才会走
crazylaa
2009-12-26
打赏
举报
回复
记得group by,order by 多个字段会用到多个字段的联合索引
ACMAIN_CHM
2009-12-26
打赏
举报
回复
huangxueliang_2008 (huangxueliang_2008)
'截至2009-12-26 21:02:39 用户结帖率
0.00%
ACMAIN_CHM
2009-12-26
打赏
举报
回复
假设你有索引 idx1 (col1,col2,col3)
如果你基于 where col1=123; 则考虑使用这个索引。
如果你 where col2=456 则无法使用这个索引。
如果你经常进行 where col1=123 and col2=456 的时候,考虑创建这个复合索引。
“卧槽”用好
组合索引
,性能提升10倍不止
相信各位在面试时,通常会被问到“什么是索引?” 而你肯定可以脱口而出:索引是提升查询速度的一种数据结构。而索引之所以能提升查询速度,在于它在插入时对数据进行了排序。 在实际业务中,我们会遇到很多复杂的...
MySQL中什么是索引?常用的索引有哪些种类?索引在什么
情况
下会失效?
提示:面试baba必问题目之一!!! 目录 ...一、索引的定义 ...二、索引的分类 ... 2.1 单值索引 ... 2.2 复合索引 ... 2.3 唯一索引 ...三、索引的优势和劣势 ... 3.1 索引的优势 ... 在这个大数据的时代,庞大的数据量需要...
mysql索引失效的
情况
_什么
情况
下mysql索引会失效?
mysql索引失效的几种
情况
:1、条件中有or,即使其中有条件带索引也不会
使用
;2、对于多列索引,不
使用
的第一部分,则不会
使用
索引;3、like查询以%开头,索引无效;4、当字段类型为字符串时,条件中数据没有
使用
引号...
建立
组合索引
的字段顺序优化
建立
组合索引
的字段顺序优化 简介
组合索引
我们经常用到,建立
组合索引
大家也都会,但是如何...因为这种场景下,能直接
使用
组合索引
做范围扫描,否则,如果该字段放在后面,可能走索引跳跃扫描,全索引扫描,甚至...
组合索引
注意事项
选择索引字段的原则,比如外键字段、数据类型较小的字段、经常用于查询或排序的字段、表关联的字段等等,在此不做赘述。本人在工作中见到过很多人创建的索引,回想自己以前也会有理论知识空洞的体会,总感觉理论知识...
Oracle
17,140
社区成员
55,259
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章