在Oracle数据库中,索引按照索引机制的不同,可以分为三种。

1. B-Tree索引 B-Tree index
应用场景: OLTP 使用比较多,处理键值重复率比较低的字段比较适合使用B-Tree索引,处理效率极高。反之当键值重复率很高时,B-Tree索引的效率会非常的低效。
在Oracle中主键会默认加上B-Tree索引。在Oracle的主键和唯一性约束上 使用B-Tree索引
B-Tree索引又可以分为:唯一索引、组合索引、反向键索引、基于函数的索引。
唯一键索引:1、唯一键索引确保在定义的索引列中没有重复值, 2、Oracle自动在表的主键列上创建唯一键索引。 3、使用CREATE UNIQUE INDEX语句创建唯一键索引。
组合索引:    1、组合索引在表的多个列上创建的索引。2、索引中列的顺序是任意的。3、如果SQL语句的WHERE子句中引用了组合索引的所有列或大多数列,则可以提高检索速度。
反向键索引:1、反向键索引反转索引列键值的每个字节。2、通常建立在列的值是连续增值的,目的是为了使数据能够均匀的分布在整索引上。3、创建时使用REVERSE关键字。
基于函数的索引:1、基于一个或多个列上的函数或表达式创建的索引。2、表达式中不能出现聚合函数。3、不能在LOB类型的列上创建。4、创建时必须有QUERY REWRITE权限。

2. 位图索引      Bitmap index
应用场景:1)处理键值重复率比较高的字段比较适合使用。2)比B-Tree索引更节省空间。3)在OLAP系统中使用比较频繁。当一个表上某个(几个)字段的数值有明显的大量重复时,比如字段是国家、地区、性别(世界上,或者该字段为其他的一些标识性信息。4)特定类型的查询下性能很高。比如,要对一个结果集进行count操作,特别是在SQL语句的条件部分,在很多字段之间存在着逻辑“与”、“或”运算的查询方式。
劣势:1、索引列上不适合频繁的进行DML操作。2、值重复率比较低的情况不适合使用。 3、 位图索引适合在数据仓库中使用,在OLTP中不常使用。
create bitmap index index_name on table_name(column_name);

3. 全文索引      Text index
应用场合: 属于数据仓库范畴,在OLTP系统中使用并不广泛。全文索引的优点在于可以对词汇的进行快速搜索。
劣势 :全文索引要 占用 大量的空间 
context类型的全文索引是 不基于事务的 无法 实现数据和索引同步。

Oracle 海量数据处理- 索引的选择相关推荐

  1. oracle组合索引最左原则,组合索引的选择原则

    表上的索引是根据什么建立的,特别是组合索引,有多个的时候优化器又怎么选择使用哪个呢, 今天做个试验验证下 新建这个表testindex 表结构 Name       Type          Nul ...

  2. 海量数据处理分析_BI

    笔者在实际工作中,有幸接触到海量的数据处理问题,对其进行处理是一项艰巨而复杂的任务.原因有以下几个方面: 一.数据量过大,数据中什么情况都可能存在.如果说有10条数据,那么大不了每条去逐一检查,人为处 ...

  3. 海量数据处理分析(部分)

    2019独角兽企业重金招聘Python工程师标准>>> 1. 海量数据处理分析    原文地址: http://blog.csdn.net/DaiZiLiang/archive/20 ...

  4. 海量数据处理相关算法及数据结构【转】

    积淀 何谓海量数据处理? 所谓海量数据处理,无非就是基于海量数据上的存储.处理.操作.何谓海量,就是数据量太大,所以导致要么是无法在较短时间内迅速解决,要么是数据太大,导致无法一次性装入内存. 那解决 ...

  5. 海量数据处理算法 各种STL容器使用的数据结构剖析

    教你如何迅速秒杀掉:99%的海量数据处理面试题 转载于:结构之法算法之道blog 前言 一般而言,标题含有"秒杀","99%","史上最全/最强&qu ...

  6. 过亿海量数据处理分析

    2019独角兽企业重金招聘Python工程师标准>>> 笔者在实际工作中,有幸接触到海量的数据处理问题,对其进行处理是一项艰巨而复杂的任务.原因有以下几个方面: 一.数据量过大,数据 ...

  7. 常见数据结构和算法实现(排序/查找/数组/链表/栈/队列/树/递归/海量数据处理/图/位图/Java版数据结构)

    常见数据结构和算法实现(排序/查找/数组/链表/栈/队列/树/递归/海量数据处理/图/位图/Java版数据结构) 数据结构和算法作为程序员的基本功,一定得稳扎稳打的学习,我们常见的框架底层就是各类数据 ...

  8. 海量数据处理之基本方法

    2013年9月18日 针对海量数据的处理,可以使用的方法非常多,常见的方法有Hash法.Bit-map法.Bloom filter法.数据库优化法.倒排索引法.外排序法.Trie树.堆.双层桶法以及M ...

  9. 10道海量数据处理的面试题

    说明:本文分为俩部分,第一部分为10道海量数据处理的面试题,第二部分为10个海量数据处理的方法总结. 出处:http://blog.csdn.net/v_JULY_v. 第一部分.十道海量数据处理面试 ...

最新文章

  1. 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  2. xcode 本地git代码管理
  3. redis pub/sub 聊天
  4. (转)博弈问题与SG函数
  5. wordpress 怎么获取站点标题
  6. C++ 移动和获取文件读写指针
  7. 1.3 编程基础之算术表达式与顺序执行 13 反向输出一个三位数(C++ Scratch)
  8. python网络-计算机网络基础(23)
  9. 【Java架构:基础技术】一篇文章搞掂:MySQL
  10. linux64位版本 小米球内网穿透后台启动 centos8 安装 screen 报错:No match for argument: screen
  11. 计算机键盘电容传感器,电容式触摸感应按键的实现之硬件篇
  12. Matlab与1stOpt多元非线性回归
  13. 谷歌浏览器将网页保存为图片或者pdf
  14. 流媒体 直播细节优化
  15. 201771010112罗松《面向对象程序设计(java)》第十七周学习总结
  16. 2G到5G蜂窝网络的定位技术简介
  17. Y7000P 2020安装黑苹果教程
  18. php微信jssdk获取位置,微信公众号获取用户地理位置
  19. 操作系统第6次实验报告:使用信号
  20. 4.26学习记录 AWS 和 DNS

热门文章

  1. 王者荣耀中有哪些获胜率高的玩法?
  2. 腾讯数据解读:95后基本不爱用微信,98%都是成年人,社交应用存在巨大机会...
  3. 在预加载新闻时,怎么去掉初始化内容的显示尴尬?
  4. 本地安装gem install --local redis-stat-0.4.13.gem
  5. 使用IDEA2017创建java web +maven项目
  6. ubuntu14.04部署Ganglia
  7. 精通Server Core系列之二 ---Server Core安装与基本配置
  8. java-第九章-循环结构进阶-三个班级每班4位同学成绩大于85的算平均分.
  9. 如何安装docker-compose
  10. MongoDB安装和启动