社区
Oracle
帖子详情
请问大家在什么情况下使用组合索引?
huangxueliang_2008
2009-12-26 09:02:39
请问大家在什么情况下使用组合索引?
在组合索引的情况下,我查询的时候只用组合索引的其中一个字段,请问这种情况下会走索引吗?
...全文
857
11
打赏
收藏
请问大家在什么情况下使用组合索引?
请问大家在什么情况下使用组合索引? 在组合索引的情况下,我查询的时候只用组合索引的其中一个字段,请问这种情况下会走索引吗?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用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 的时候,考虑创建这个复合索引。
组合索引
的
使用
规则到底有哪些?有什么注意点?什么
情况
下索引会生效、失效?
索引的
使用
规则到底有哪些?有什么注意点?什么
情况
下索引会生效、失效? 前言: 5月初面试了字节跳动抖音电商实习岗,一上来,面试官就问了
组合索引
的问题,并且给出了很多题用于判断哪些
情况
下
组合索引
会生效,当时答得很差,只记之前在网上看了下什么范围查找会失效,面试下来才知道错回答了很多,于此记录本篇博客。本篇博客主要针对B+树的
组合索引
,同时只是给出结论和简单解释,至于为什么生效,为什么失效,之后有时间了会给出图文解释。 一、索引生效的查询规则 首先对索引的生效规则给出结论:包括 全值查询 匹配最左前缀 匹.
什么是
组合索引
?在哪些场景中,
组合索引
会失效?
什么是
组合索引
? 给多个字段一个索引叫
组合索引
。 问题:在哪些场景中,
组合索引
会失效? 场景: 数据表:job_status_trace_log【说明:id是主键】 数据量:35w 创建索引:ALTER table job_status_trace_log add INDEX creation_time_index(creation_time,job_name,source) 例子:
组合索引
...
MYSQL 索引类型、什么
情况
下用不上索引、什么
情况
下不推荐
使用
索引
mysql explain的
使用
:http://blog.csdn.net/kaka1121/article/details/53394426 索引类型在数据库表中,对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable表代码如下:CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL ...
mysql
组合索引
用到,mysql
组合索引
只用了一部分也能用上索引?
问题如下:有一个表,总行数为21万,其中只有一个组合主键索引 primary key (channel_app_id, content_app_id)create table t_channel_apply(channel_app_id varchar(64) default '' not null comment '渠道方appid',content...
关于Mysql
组合索引
、覆盖索引、优化器不
使用
索引等学习总结
前言 首先捋清一下各种索引关系 单列索引和
组合索引
索引分为单列索引(主键索引,唯一索引,普通索引)和
组合索引
。 单列索引:一个索引只包含一个列,一个表可以有多个单列索引。
组合索引
:一个
组合索引
包含两个或两个以上的列。 聚集索引和辅助索引 接着说,对于Mysql的InnoDB 存储引擎来说,在绝大多数
情况
下
使用
B+ 树建立索引,这是关系型数据库中查找最为常用和有效的索引,但是 B+...
Oracle
17,133
社区成员
55,258
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章