Oracle索引的学习总结
在Oracle中,索引基本分为以下几种:B*Tree索引,反向索引,降序索引,位图索引,函数索引,interMedia全文索引等,其中最常用的是B*Tree索引和Bitmap索引。
(1)、与索引相关视图
查询DBA_INDEXES视图可得到表中所有索引的列表;访问USER_IND_COLUMNS视图可得到一个给定表中被索引的特定列。
(2)、组合索引概念
当某个索引包含有多个已索引的列时,称这个索引为组合(concatented)索引。
注意:只有在使用到索引的前导索引时才可以使用组合索引
(3)、B*Tree索引
B*Tree索引是最常见的索引结构,默认建立的索引就是这种类型的索引。B*Tree索引在检索高基数数据列(高基数数据列是指该列有很多不同的值)时提供了最好的性能。
DML语句:
Create index indexname on tablename(columnname[columnname...])
B-tree特性:
适合与大量的增、删、改(OLTP);
不能用包含OR操作符的查询;
适合高基数的列(唯一值多);
典型的树状结构;
每个结点都是数据块;
大多都是物理上一层、两层或三层不定,逻辑上三层;
叶子块数据是排序的,从左向右递增;
在分支块和根块中放的是索引的范围。
(4)、Bitmap索引
位图索引主要用于决策支持系统或静态数据,不支持行级锁定。位图索引最好用于低cardinality列(即列的唯一值除以行数为一个很小的值,接近零)。
DML语句:
Create BITMAP index indexname on tablename(columnname[columnname...])
Bitmap特性:
适合与决策支持系统;
做UPDATE代价非常高;
非常适合OR操作符的查询;
基数比较少的时候才能建位图索引。
(5)、B*tree和Bitmap的不同
在一颗 B* 树中,通常索引条目和行之间存在一种一对一的关系:一个索引条目就指向一行;而对于位图索引,一个索引条目则使用一个位图同时指向多行。
位图索引适用于高度重复而且通常只读的数据(高度重复是指相对于表中的总行数,数据只有很少的几个不同值)。B*tree索引的话通常在访问小数据量的情况下比较适用,比如你访问不超过表中数据的5%,适用于一般的情况;bitmap的话在数据仓库中使用较多,用于低基数列,比如性别之类重复值很多的字段,基数越小越好。
(6)、导致索引失效的情况
使用不等于操作符(<>、!=)
通常把不等于操作符改成OR条件,就可以使用索引,以避免全表扫描
使用IS NULL 或IS NOT NULL
使用IS NULL 或IS NOT NULL同样会限制索引的使用。因为NULL值并没有被定义。在SQL语句中使用NULL会有很多的麻烦。因此建议开发人员在建表时,把需要索引的.列设成NOT NULL。如果被索引的列在某些行中存在NULL值,就不会使用这个索引(除非索引是一个位图索引)。
使用函数
如果不使用基于函数的索引,那么在SQL语句的WHERE子句中对存在索引的列使用函数时,会使优化器忽略掉这些索引。
比较不匹配的数据类型
不匹配的数据类型之间比较会让Oracle自动限制索引的使用,即便对这个查询执行Explain Plan也不能让您明白为什么做了一次”全表扫描”。
复合索引中的前导列没有被作为查询条件
复合索引中,一定要将前导列作为查询条件,索引才会被使用
CBO模式下选择的行数比例过大,优化器采取了全表扫描
这是基于代价的优化考虑
陕西高考排名25500左右排位理科可以上哪些大学,具体能上什么大学
嵩山少林武术职业学院的体育艺术表演专业排名怎么样 附历年录戎数线
哈尔滨工程大学的核工程与核技术专业排名怎么样 附历年录戎数线
江西航空职业技术学院和广西工业职业技术学院哪个好 附对比和区别排名
广西高考排名127100左右排位理科可以上哪些大学,具体能上什么大学
江苏高考排名123140左右排位物理可以上哪些大学,具体能上什么大学
乡镇第三季度安全生产工作总结
房产担保合同范本
深圳二手房买卖合同最新版
林业站工作人员年度工作情况总结
乡镇第三季度安全生产工作总结
林业站工作人员年度工作情况总结
幼儿园工作工作总结
最新学校安全教育日活动总结范文
幼儿园小班九月份工作心得
音乐学科名师工作室个人总结
湖南高考排名175930左右排位物理可以上哪些大学,具体能上什么大学
长沙理工大学的国际经济与贸易专业排名怎么样 附历年录戎数线
昆明文理学院和辽宁中医药大学哪个好 附对比和区别排名
辽宁工程技术大学的劳动与社会保障专业排名怎么样 附历年录戎数线
广东高考排名41470左右排位物理可以上哪些大学,具体能上什么大学
安徽高考排名196040左右排位理科可以上哪些大学,具体能上什么大学
陕西高考排名115990左右排位理科可以上哪些大学,具体能上什么大学
江西高考排名42140左右排位文科可以上哪些大学,具体能上什么大学
牡丹江师范学院在天津高考招生计划人数专业代码(2024参考)
吉林高考排名12950左右排位文科可以上哪些大学,具体能上什么大学
黑龙江高考排名112670左右排位理科可以上哪些大学,具体能上什么大学
新疆轻工职业技术学院的食品智能加工技术专业排名怎么样 附历年录戎数
南昌职业大学和陕西科技大学镐京学院哪个好 附对比和区别排名
河南高考排名435340左右排位理科可以上哪些大学,具体能上什么大学
辽宁对外经贸学院和湖南科技大学哪个好 附对比和区别排名
内蒙古高考排名16110左右排位理科可以上哪些大学,具体能上什么大学
贵州高考排名75190左右排位文科可以上哪些大学,具体能上什么大学
海南高考排名51850左右排位综合可以上哪些大学,具体能上什么大学
四川旅游学院和辽宁工业大学哪个好 附对比和区别排名
浙江高考排名226180左右排位综合可以上哪些大学,具体能上什么大学
采购部门年终工作总结模板
临床医学个人实习总结
精循营部年终工作总结范文
珠宝工作总结范文
电话销售个人年终总结范文
安保个人工作总结(通用五篇)
小学年度降学校工作总结范文
施工安全员个人工作总结(精选五篇)
四年级4班班主任工作总结
平面设计师终个人工作总结
物业前台年终工作总结三篇
酒店人力资源年度工作总结
教师的年度总结模板9篇
公司行政年终工作总结四篇
转正工作总结五篇