社区
Oracle
帖子详情
请问大家在什么情况下使用组合索引?
huangxueliang_2008
2009-12-26 09:02:39
请问大家在什么情况下使用组合索引?
在组合索引的情况下,我查询的时候只用组合索引的其中一个字段,请问这种情况下会走索引吗?
...全文
789
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 的时候,考虑创建这个复合索引。
mysql索引失效的
情况
_什么
情况
下mysql索引会失效?
mysql索引失效的几种
情况
:1、条件中有or,即使其中有条件带索引也不会
使用
;2、对于多列索引,不
使用
的第一部分,则不会
使用
索引;3、like查询以%开头,索引无效;4、当字段类型为字符串时,条件中数据没有
使用
引号引用。索引并不是时时都会生效的,比如以下几种
情况
,将导致索引失效:1.如果条件中有or,即使其中有条件带索引也不会
使用
(这也是为什么尽量少用or的原因)注意:要想
使用
or,又想让索引生...
建立
组合索引
的字段顺序优化
建立
组合索引
的字段顺序优化 简介
组合索引
我们经常用到,建立
组合索引
大家也都会,但是如何考虑建立
组合索引
的顺序是一个值得推敲的事情。 正文 1. 尽量把最常用的字段放在最前面 对于我们需要创建的
组合索引
,如果同时又经常单独
使用
其中某个字段作为查询条件,这样的字段是要求放在
组合索引
前面的。 因为这种场景下,能直接
使用
组合索引
做范围扫描,否则,如果该字段放在后面,可能走索引跳跃扫描,全索引扫描,甚至...
组合索引
注意事项
索引的原理与作用,各种书籍和网络上的介绍可以说是铺天盖地,基本上主流数据库系统的也都是一致的。选择索引字段的原则,比如外键字段、数据类型较小的字段、经常用于查询或排序的字段、表关联的字段等等,在此不做赘述。本人在工作中见到过很多人创建的索引,回想自己以前也会有理论知识空洞的体会,总感觉理论知识无法与具体的工作问题相匹配。在此仅以工作学习中积累的一点经验和问题场景整理以飨读者。先把常见的注意事项...
一文整理14道MySQL索引相关面试题
精心整理14道MySQL索引相关面试题(珍藏版) 如果仅仅是死记硬背MySQL索引相关面试题一定是相当枯燥的,不容易记却容易忘,这里循序渐进的讲解有关索引有关知识点,让大家在理解的基础上记住一些面试常问的点。 什么是索引? 索引的优缺点? 什么
情况
下需要建索引? 什么
情况
下不需要建索引? 索引有哪几种分类? 索引的数据结构有哪些? Hash索引和B+树索引的区别? 为什么B+树比B树更适合实现数据库索引? 聚集索引相对于非聚集索引的区别? 什么是回表查询? 什么是覆盖索引? 什么是最左匹配原则? 索引失效
聊聊索引失效?失效的原因是什么?
大家好,我是小林。 在工作中,如果我们想提高一条语句查询速度,通常都会想对字段建立索引。 但是索引并不是万能的。建立了索引,并不意味着任何查询语句都能走索引扫描。 稍不注意,可能你写的查询语句是会导致索引失效,从而走了全表扫描,虽然查询的结果没问题,但是查询的性能大大降低。 今天就来跟大家盘一盘,常见的 6 种会发生索引失效的场景。 不仅会用实验案例给大家说明,也会清楚每个索引失效的原因。 发车! 索引存储结构长什么样? 我们先来看看索引存储结构长什么样?因为只有知道索引的存储结构,才能更好的理解索引失效
Oracle
17,078
社区成员
55,234
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章