当前位置: 首页 > article >正文

oracle:索引(B树索引,位图索引,分区索引,主键索引,唯一索引,联合索引/组合索引,函数索引)

索引通过存储列的排序值来加快对表中数据的访问速度,帮助数据库系统快速定位到所需数据,避免全表扫描

B树索引(B-Tree Index)

B树索引是一种平衡树结构,适合处理范围查询和精确查找。它的设计目标是保持数据有序,并支持高效的插入、删除和查找操作。是 Oracle 数据库中一种最常见的索引类型, 索引没有指定索引类型时默认是B树索引

 

语法 : 根据表中的某个字段创建索引

索引名命名规范: idx_表名_字段名

(不强制,只是相对规范,其他起名方式也可以)

位图索引(Bitmap Index)

主要用于处理低基数列(即列中唯一值较少的列,如性别、状态等)。位图索引通过使用位图(bitmap)来表示数据的存在与否,适合在数据仓库或决策支持系统(DSS)中使用,尤其是在需要处理大量静态数据和复杂查询的场景中。

语法

分区索引(Partitioned Index)

是与分区表(Partitioned Table)相关联的索引。分区表是将大表数据按某种规则(如范围、列表、哈希等)分成多个较小的分区(Partition),而分区索引则是为这些分区创建的索引。分区索引可以显著提高大表的查询性能,尤其是在数据量非常大的情况下。

分类

区别: 当表分区发生变化(如添加、删除、合并分区)时,本地分区索引会自动同步, 全局分区索引可能需要手动维护 

语法

以上语法没有指定索引实现方式, 默认是B树索引

主键索引和唯一索引

主键索引和唯一索引通常都是使用B树索引来实现的, 通常不将主键索引和唯一索引指定为位图索引/哈希索引。

共同点:

1.唯一索引和主键索引都是用来保证数据的唯一性的;

2.都可以在建表时定义

区别:

1.主键索引不能包含NULL值, 唯一索引可以有NULL值且可以出现多次(因为NULL不等于任何值,包括它自己)。

2.一个表只能有一个主键索引,但可以有多个唯一索引

主键索引的语法

主键索引字段是单个时是单一主键索引, 字段有2个或以上时是复合主键索引

唯一索引的语法

联合索引/组合索引

指在多个列上创建的索引。它适用于查询条件中同时涉及多个列的场景, 默认属于B树索引,不支持直接将联合索引创建为哈希索引

索引(a , b , c) 有3个字段,相当于建了3个索引, 即索引(a) , 索引(a , b) , 索引(a, b , c)

联合索引的顺序影响查询效率,应根据查询频率和选择性设计索引。高选择性的列应放在前面

最左原则:

联合索引按从左到右的顺序匹配,查询条件必须包含最左侧的列,否则索引可能失效。例如,索引为 (A, B, C),查询条件应包含 A,否则索引可能无法使用

如果联合索引是 (A, B, C),而查询条件是 A 和 C(即缺少中间的 B),联合索引部分有效

函数索引

基于表达式或函数创建的索引。它适用于查询条件中包含函数或表达式的场景, 常用于优化复杂的计算列查询以及大小写不敏感的查询, 默认属于B树索引, 不支持将函数索引直接指定为哈希索引

指定位图索引的语法

 

 


http://www.kler.cn/a/530862.html

相关文章:

  • Linux——文件系统
  • LeetCode:121.买卖股票的最佳时机1
  • Lesson 127 A famous actress
  • 使用LLaMA-Factory对AI进行认知的微调
  • pytorch实现主成分分析 (PCA):用于数据降维和特征提取
  • Debian 10 中 Linux 4.19 内核在 x86_64 架构上对中断嵌套的支持情况
  • 【Rust自学】19.5. 高级类型
  • 人工智能导论-第3章-知识点与学习笔记
  • 求职刷题力扣DAY34--贪心算法part05
  • 深入剖析 Bitmap 数据结构:原理、应用与优化策略
  • UE PlayerController、AIController
  • UE5 蓝图学习计划 - Day 9:数组与跨蓝图通信
  • 服务SDK三方新版中央仓库和私服发布详解
  • Java 网络原理 ③-NAT || DHCP
  • 在K8S中,如何把某个worker节点设置为不可调度?
  • C语言可变参数
  • leetcode解题思路分析(一百六十三)1409 - 1415 题
  • 【1】快手面试题整理
  • C基础寒假练习(2)
  • AI模型升级版0.04
  • 【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.10 ndarray内存模型:从指针到缓存优化
  • DeepSeek横空出世,AI格局或将改写?
  • 《苍穹外卖》项目学习记录-Day11用户统计
  • selenium记录Spiderbuf例题C01
  • Rust中使用ORM框架diesel报错问题
  • ip属地是实时刷新吗还是网络刷新