博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】Oracle索引的类型
阅读量:6583 次
发布时间:2019-06-24

本文共 1064 字,大约阅读时间需要 3 分钟。

数据库的应用类型分为

  1. OLTP(OnLine Transaction Processing ,联机事务处理):OLTP是传统关系型数据库的主要应用,其主要面向基本的、日常的事务处理,例如银行交易。
  2. OLAP(OnLine Analysis Processing,联机分析处理):OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。

转自:

数据存储方式上分类:B-树索引、反向索引、位图索引

  • B-树索引建立在重复值很少的列上
  • 位图索引建立在重复值很多、不同值相对固定的列上。

索引列的个数分:单列索引、复合索引;

基于函数的索引

-- 基本结构  CREATE [UNIQUE] INDEX index_name    ON table_name (function1, function2, . function_n)    [ COMPUTE STATISTICS ];    -- 例子  CREATE INDEX supplier_idx    ON supplier (UPPER(supplier_name));

位图索引

目前大量使用的索引一般主要是B-Tree索引,在索引结构中存储着键值和键值的RowID,并且是一一对应的。而位图索引主要针对大量相同值的列而创建,例如:类别,操作员,部门ID等。位图索引由于只存储键值的起止Rowid和位图,占用的空间非常少。

位图索引非常适合于数据仓库应用,因为数据仓库处理的是大量即席查询,几乎没有并发的事务。位图索引提供以下优势:

  • 缩短了即席查询的相应时间
  • 比其他索引技术节省存储空间
  • 高性能
  • 高效的并行DML和加载

位图索引不适合OLTP应用,OLTP应用需要处理大量并发的修改数据的事务。位图索引更适合于基于数据仓库的决策支持系统,因为决策支持系统主要是查询数据而不是修改数据。位图索引页不适合于主要用于大于或小于比较的列,只适合于等式查询,特别是AND,OR和NOT操作;大于和小于比较更适合采用B-tree索引。

CREATE BITMAP INDEX 索引名 ON 表名 (列名);

Oracle索引的实现

果将这些记录根据它们的某一列组织成B-tree结构,一个叶节点代表一条数据,那么从n行的表中查询一条记录的平均用时为log(n)。这就是Oracle数据库索引的基本原理。

B-tree的分支节点包含到其子节点的索引。最低层节点(叶节点)包含了索引数据值和其对应的rowid,rowid用于定位对应的数据表行。

转载地址:http://gnxno.baihongyu.com/

你可能感兴趣的文章
Spring事务管理
查看>>
关于C# partial的使用
查看>>
排序之插入排序
查看>>
存储过程--根据表名生成表的insert语句
查看>>
leetcode — unique-paths-ii
查看>>
redis——持久化篇
查看>>
算法导论-MIT笔记
查看>>
(网络流 匹配 KM) Going Home --poj -- 2195
查看>>
zb的生日-------搜索 和 动态规划
查看>>
vux 中popup 组件 Mask 遮罩在最上层问题的解决
查看>>
[java]常用组件
查看>>
trie树(字典树)实现 C++
查看>>
webpack学习笔记(二)-- 初学者常见问题及解决方法
查看>>
关于SOME、ANY和ALL的区别
查看>>
通过url获取bitmap
查看>>
索引/代码块目录
查看>>
[c++]指针创建数组不会调用构造函数
查看>>
SCAU 10691 ACM 光环
查看>>
win7 php nginx 启动命令
查看>>
Android独立交叉编译环境搭建
查看>>