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

oracle 索引

Oracle 数据库中的索引是优化查询性能的重要工具,其类型多样,适用于不同场景。以下是 Oracle 索引的主要分类及特点:

1.B-Tree 索引(平衡树索引)

  • 特点

  • 默认索引类型,树形结构(根、分支、叶块),支持等值查询和范围查询。

  • 适用场景

    • 高基数列(唯一值多,如主键、身份证号)。

    • 频繁的 WHEREORDER BYJOIN 操作。

  • 语法

CREATE INDEX idx_emp_name ON employees (last_name);

 2. 位图索引(Bitmap Index)

  • 特点

  • 为低基数列(唯一值少,如性别、状态)存储位图,支持高效的逻辑运算(AND/OR/NOT)。

  • 适用场景

    • 数据仓库或 OLAP 系统(读多写少)。

    • 多列组合的低基数查询(如 WHERE status='A' AND dept='IT')。

  • 注意事项

    • 不适合频繁更新的 OLTP 系统(位图锁粒度大)。

  • 语法

 CREATE BITMAP INDEX idx_emp_gender ON employees (gender);

 

3. 函数索引(Function-Based Index)

  • 特点

  • 基于表达式或函数(如 UPPER(name)salary*12)构建索引。

  • 适用场景

    • 查询条件包含函数或计算(如 WHERE UPPER(last_name) = 'SMITH')。

    • 优化大小写不敏感的查询。

  • 语法

CREATE INDEX idx_emp_upper_name ON employees (UPPER(last_name));

4. 反向键索引(Reverse Key Index) 

 

  • 特点: 

  • 将索引键值的字节顺序反转(如 123 → 321),减少索引块争用。

  • 适用场景

    • 避免索引热点(如序列主键的并发插入场景)。

  • 注意事项

    • 不支持范围查询(如 BETWEEN)。

  • 语法: 

 CREATE INDEX idx_emp_id_rev ON employees (employee_id) REVERSE;

 5. 组合索引(Composite Index)

  • 特点: 

  •   基于多列组合构建索引(最多 32 列)。

  • 适用场景

    • 多列联合查询(如 WHERE dept_id=10 AND salary>5000)。

    • 覆盖索引(索引包含查询所需的所有列)。

  • 优化技巧

    • 高频查询的列放在索引最左侧。

  • 语法

 CREATE INDEX idx_emp_dept_sal ON employees (dept_id, salary);

 6. 唯一索引(Unique Index)

  • 特点

  • 确保索引列的值唯一(主键自动创建唯一索引)。

  • 适用场景

    • 强制唯一性约束(如用户名、邮箱)。

  • 语法

 CREATE UNIQUE INDEX idx_emp_email ON employees (email);

 7. 分区索引

 

(1) 本地分区索引(Local Partitioned Index)

  • 特点
    索引与表的分区一一对应,每个分区独立维护索引。

  • 适用场景

    • 分区表(如按时间范围分区)。

    • 分区维护操作(如 TRUNCATE)自动更新索引。

(2) 全局分区索引(Global Partitioned Index)

  • 特点
    索引的分区方式独立于表,可跨表分区。

  • 适用场景

    • 跨分区的查询优化。

  • 注意事项

    • 分区表结构变更时需重建索引。

8. 压缩索引(Compressed Index) 

  • 特点

  • 压缩索引键的前缀重复值,减少存储空间。

  • 适用场景

    • 组合索引的前缀列重复率高(如 (dept_id, employee_id)dept_id 重复)。

  • 语法

CREATE INDEX idx_emp_compressed ON employees (dept_id, employee_id) COMPRESS;

索引选择建议

场景推荐索引类型
高基数列、OLTP 系统B-Tree 索引
低基数列、数据仓库位图索引
函数或表达式查询函数索引
避免索引热点(如序列主键)反向键索引
多列联合查询组合索引
分区表本地/全局分区索引
唯一性约束唯一索引

注意事项

  1. 索引维护成本

    • 索引会降低 DML(INSERT/UPDATE/DELETE)性能。

    • 定期重建碎片化索引(ALTER INDEX ... REBUILD)。

  2. 监控使用情况

    • 通过 DBA_INDEXESV$OBJECT_USAGE 查看索引状态。

  3. 避免过度索引

    • 仅对高频查询列创建索引。

合理选择索引类型可显著提升查询性能,但需结合数据分布、业务场景和系统负载综合评估。

相关文章:

oracle 索引

Oracle 数据库中的索引是优化查询性能的重要工具,其类型多样,适用于不同场景。以下是 Oracle 索引的主要分类及特点: 1.B-Tree 索引(平衡树索引) 特点: 默认索引类型,树形结构(根、…...

ZooKeeper集群高可用性测试与实践:从规划到故障模拟

#作者:任少近 文章目录 ZooKeeper集群环境规划1.集群数据一致性测试2.集群节点故障测试 ZooKeeper集群高可用性测试的主要目的是确保在分布式环境中,ZooKeeper服务能够持续提供一致性和高可用性的协调服务。 ZooKeeper集群环境规划 节点ipZooKeeper版本…...

RocketMQ 架构

一、RocketMQ 核心架构概述 ​1. 主要组件 ​Name Server: 集群的「中枢神经」,负责 Topic 元数据管理(如 Topic 分区分布、Broker 节点状态监控)。 ​Broker: 消息存储与流转的核心节点,负责消息的持久化…...

Microchip AN1477中关于LLC数字补偿器的疑问

最近在学习Microchip的AN1477关于LLC的功率级传递函数推导及数字补偿器设计,对其中的2P2Z数字补偿器的系数有一些困惑。我在MATLAB中运行了源程序提供的VMC_LLC.m文件,发现有些地方和AN1477中的结果不一致。现在把相关有疑问的地方列举出来,也…...

力扣热题100(方便自己复习,自用)

力扣热题100 1. 两数之和 - 力扣(LeetCode) 查找两数之和是不是等于target也就是我们找到一个数之后,用target将其减掉,再寻找应当对应的元素是什么每找到一个数,我们就将其放在集合中,因为集合中可以去重…...

视频翻译器免费哪个好?轻松玩转视频直播翻译

你是不是觉得看外语视频很麻烦?每次遇到喜欢的外语电影、电视剧或动漫,总是要等字幕组的翻译,或者因为语言不通而错过精彩的情节。 这个时候,掌握多语种直播翻译方案就显得尤为重要,有了实时字幕,看外语视…...

深度学习中的“刹车”:正则化如何防止模型“超速”

深度学习中的“刹车”:正则化如何防止模型“超速” 大家好!今天我们来聊聊深度学习中的一个重要概念——正则化。 什么是过拟合? 想象一下,你正在教一个孩子认字。你给他看很多猫的图片,他都能正确识别。但是&#…...

【pytest框架源码分析五】pytest插件的注册流程

前文介绍到pytest整体是运用插件来实现其运行流程的。这里仔细介绍下具体过程。 首先进入main方法 def main(args: list[str] | os.PathLike[str] | None None,plugins: Sequence[str | _PluggyPlugin] | None None, ) -> int | ExitCode:"""Perform an i…...

【协作开发】低成本一键复刻github的gitea

在阅读 next-public 时,反思原本的需求,是否本未倒置,故而重新调研当下开源现状。发现 gitea 完全满足商业软件的开发要求,并且价格足够低,使用足够方便,其他同类软件完全不用看了,真是世界级的…...

虚拟机 | Ubuntu操作系统:su和sudo理解及如何处理忘记root密码

系列文章目录 虚拟机 | Ubuntu 安装流程以及界面太小问题解决 虚拟机 | Ubuntu图形化系统: open-vm-tools安装失败以及实现文件拖放 文章目录 系列文章目录前言一、su和sudo是什么?1、su忘记root密码的解决方案无法进入GRUB引导页面 2、sudo推荐使用sud…...

token升级(考虑在分布式环境中布置token,结合session保证请求调用过程中token不会过期。)

思路: 首先,用户的需求是确保使用同一个Token的外部调用都在一个Session中处理。 需要考虑Token与Session绑定、安全措施、Session管理、分布式处理等。 使用Redis作为Session存储, 在Java中 通过Spring Data Redis或Lettuce库实现。 2.生成…...

Flink 通过 Chunjun Oracle LogMiner 实时读取 Oracle 变更日志并写入 Doris 的方案

文章目录 一、 技术背景二、 关键技术1、 Oracle LogMiner2、 Chunjun 的 LogMiner 关键流程3、修复 Chunjun Oracle LogMiner 问题 一、 技术背景 在大数据实时同步场景中,需要将 Oracle 数据库的变更数据(CDC) 采集并写入 Apache Doris&am…...

若依(RuoYi)框架新手使用指南

若依(RuoYi)框架新手使用指南 若依(RuoYi)是一款基于 Spring Boot Vue 的前后端分离企业级开发框架,集成了权限管理、代码生成、监控日志等核心功能,适用于快速构建中后台管理系统。以下是详细的使用指南…...

k8s-coredns-CrashLoopBackOff 工作不正常

本文作者: slience_me 问题描述 # 问题描述 # rootk8s-node1:/home/slienceme# kubectl get pods --all-namespaces # NAMESPACE NAME READY STATUS RESTARTS AGE # kube-flannel kube-flannel-ds-66bcs …...

【css酷炫效果】纯CSS实现粒子旋转动画

【css酷炫效果】纯CSS实现粒子旋转动画 缘创作背景html结构css样式完整代码效果图 想直接拿走的老板,链接放在这里:https://download.csdn.net/download/u011561335/90492008 缘 创作随缘,不定时更新。 创作背景 刚看到csdn出活动了&…...

SQL 通配符

SQL 通配符 在SQL查询中,通配符是一种非常有用的特性,它允许用户在查询时使用特殊字符来匹配一系列的值。本文将详细介绍SQL中的通配符及其用法,帮助读者更好地理解如何在SQL查询中使用通配符。 1. 什么是通配符? 通配符是SQL查…...

【工具】C#防沉迷进程监控工具使用手册

一、软件简介 本工具用于监控指定进程的运行时长,当达到预设时间时通过声音、弹窗、窗口抖动等方式进行提醒,帮助用户合理控制程序使用时间。 软件在上篇文章。 二、系统要求 Windows 7/10/11.NET Framework 4.5 或更高版本 三、快速入门 1. 配置文件…...

4.数据结构-树和二叉树

树和二叉树 4.1树和二叉树的定义4.1.1树的定义4.1.2树的基本术语4.1.3二叉树的定义 4.2二叉树的性质和存储结构4.2.1二叉树的性质4.2.1二叉树的存储结构顺序存储链式存储 4.3遍历二叉树和线索二叉树4.3.1遍历二叉树根据遍历序确定二叉树先序序列创建二叉链表复制二叉树计算二叉…...

【工作记录】F12查看接口信息及postman中使用

可参考 详细教程:如何从前端查看调用接口、传参及返回结果(附带图片案例)_f12查看接口及参数-CSDN博客 1、接口信息 接口基础知识2:http通信的组成_接口请求信息包括-CSDN博客 HTTP类型接口之请求&响应详解 - 三叔测试笔记…...

k8s搭建kube-prometheus

后续再补一个k8s集群搭建的博客,从0开始搭建k8s集群。使用kube-prometheus非常方便,主要问题只在于拉取镜像。除了拉取镜像外其他时间5分钟即可。耐心等待拉取镜像。 一.kube-prometheus简介 kube-prometheus 是一个专为 Kubernetes 设计的开源监控解决…...

Linux应用:Linux的信号

什么是信号 信号是一种软件中断,用于通知进程系统中发生了某种特定事件。它是操作系统与进程之间,以及进程与进程之间进行异步通信的一种方式。在 Linux 系统中,信号是一种比较简单的进程间通信机制。当一个信号产生时,内核会通过…...

C++特性——RAII、智能指针

RAII 就像new一个需要delete,fopen之后需要fclose,但这样会有隐形问题(忘记释放)。RAII即用对象把这个过程给包起来,对象构造的时候,new或者fopen,析构的时候delete. 为什么需要智能指针 对于…...

springboot项目,指定用alibaba连接池所需要的配置

1、依赖:引入相关的两个依赖 2、application.yml...

在本地跑通spark环境

官网下载spark 下载spark 解压就好 本地配置环境变量 配置环境变量(系统环境变量) 新增 SPARK_HOME 变量名:SPARK_HOME 变量值:F:\class\spark\Spark_env\spark-3.4.4-bin-hadoop3 配置 PATH,新增如下&#xff1a…...

python-56-基于Vue和Flask进行前后端分离的项目开发示例实战

文章目录 1 创建Vue前端项目1.1 运行demo1.2 实现需求2 flask部署上述dist(前后端未分离)2.1 代码app.py2.2 运行访问3 nginx部署(前后端分离)3.1 nginx前端服务3.3.1 windows安装nginx3.3.2 修改nginx.conf配置文件3.3.3 启动nginx3.3.3 停止nginx3.2 启动后端服务3.2.1 app.p…...

云盘搭建笔记

报错问题: No input file specified. 伪静态 location / {if (!-e $request_filename) { rewrite ^(.*)$ /index.php/$1 last;break;} } location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php/$1 last; break; } } 设…...

学习C2CRS Ⅳ (Conversational Recommender Model)

C2CRS_Model C2CRS_Model 是一个用于对话推荐系统(Conversational Recommender System, C2CRS)的端到端模型。该模型结合了知识图谱(KG)、上下文信息、用户表示和对话生成等多个模块,以实现高效的推荐和对话功能。它通过以下模块实现: 用户表示模块(CoarseFineDRUserMo…...

【工具】huggingface 模型下载过程

前述 记录下自己下载模型的几种方式 方式 1、网页直接浏览器下载: 简单,但是随时可能断 2、git lfs # 拉代码 GIT_LFS_SKIP_SMUDGE1 git clone https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0 # 进入目录 cd stable-diffusion-…...

空调遥控器低功耗单片机方案

RAMSUN空调遥控器采用先进的32位低功耗单片机作为核心控制器,通过优化软件算法和硬件设计,实现了空调遥控器的低功耗运行。单片机集成了多种功能模块,包括红外发射、按键扫描、电源管理等,有效降低了整体功耗。同时,该…...

K8S学习之基础三十五:k8s之Prometheus部署模式

Prometheus 有多种部署模式,适用于不同的场景和需求。以下是几种常见的部署模式: 1. 单节点部署 这是最简单的部署模式,适用于小型环境或测试环境。 特点: 单个 Prometheus 实例负责所有的数据采集、存储和查询。配置简单&…...

Agent toolkits集成指南

文章目录 CSV Agent的集成Pandas Dataframe Agent的集成PowerBI Dataset Agent的集成Agent toolkits的集成旨在简化并增强LLM应用中的数据处理和分析功能。CSVAgent提供了一个专门的工具,允许开发者处理CSV数据。Pandas Agent则集成了Pandas框架,赋予了开发者在应用中进行高效…...

蓝桥杯关于字符串的算法题目(leetcode回文串的判断问题)

文章目录 1.题目概述2.思路分析3.代码解析 1.题目概述 这个题目主要是需要我们找到回文串,这个回文实际上就是文学里面的这个修辞手法,在这个编程的时候:大概说的就是这个字符串从左向右个从右向左都是一样的这个效果,我们把这样…...

数据结构-----队列

顺序队列(Queue) 一、队列核心概念 1. 基本特性 先进先出(FIFO):最早入队的元素最先出队操作限制: 队尾(Rear):唯一允许插入的位置队头(Front)&…...

GitHub Copilot 在 VS Code 上的终极中文指南:从安装到高阶玩法

GitHub Copilot 在 VS Code 上的终极中文指南:从安装到高阶玩法 前言 GitHub Copilot 作为 AI 编程助手,正在彻底改变开发者的编码体验。本文将针对中文开发者,深度解析如何在 VS Code 中高效使用 Copilot,涵盖基础设置、中文优化…...

深入理解 RLP 编码与 JSON:原理、应用与比较

在区块链和数据存储领域,RLP(Recursive Length Prefix)编码和**JSON(JavaScript Object Notation)**是两种重要的数据编码方式。它们分别适用于不同的应用场景,并具有不同的优缺点。本文将系统性地分析 RLP…...

AI大白话(三):深度学习——AI的‘大脑‘是如何构建的?

🌟引言: 专栏:《AI大白话》 AI大白话(一):5分钟了解AI到底是什么? AI大白话(二):机器学习——AI是怎么“学习“的? 大家好!继前两篇介绍AI基础和机器学习的文章后,今天我们来聊聊深度学习——这个让AI技术近年来突飞猛进的"神奇引擎"。别担心,我会用…...

初识R语言饼状图

目录 基础饼图 标签个性化 边界修改 密度条纹 边框颜色 基础饼图 rm(list ls())# Create Data Prop <- c(3,7,9,1,2) # Make the default Pie Plot P1 <- pie(Prop) dev.off() 标签个性化 P2 <-pie(Prop , labels c("Gr-A","Gr-B","…...

[DeepRetrieval] 用DeepSeek-R1-Zero的思路教会模型怎么用搜索引擎找文本

前段时间很火的 DeepSeek-R1-Zero&#xff0c;通过这种方式既然能增强模型的推理能力&#xff0c;那是否可以在RAG的方面上增强文本的召回呢&#xff1f; 今天带来一篇关于这个方面工作的技术报告来分享一下。 技术报告&#xff1a; https://arxiv.org/pdf/2503.00223 原文链接…...

⭐算法OJ⭐二叉树的后序遍历【树的遍历】(C++实现)Binary Tree Postorder Traversal

⭐算法OJ⭐二叉树的中序遍历【树的遍历】&#xff08;C实现&#xff09;Binary Tree Inorder Traversal ⭐算法OJ⭐二叉树的前序遍历【树的遍历】&#xff08;C实现&#xff09;Binary Tree Preorder Traversal Given the root of a binary tree, return the postorder traver…...

【LeetCode 热题100】 234. 回文链表的算法思路及python代码

234. 回文链表 给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为回文链表。如果是&#xff0c;返回 true&#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,2,1] 输出&#xff1a;true示例 2&#xff1a; 输入&…...

Grid布局示例代码

示例一 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Grid Layout Example</title><styl…...

【K8S】ImagePullBackOff状态问题排查。

ImagePullBackOff 是在使用 Kubernetes&#xff08;K8s&#xff09;时经常遇到的一种错误状态&#xff0c;下面为你详细介绍其含义、可能的原因及解决办法。 含义 当你在 K8s 集群中创建一个 Pod 时&#xff0c;Kubelet 会尝试从指定的镜像仓库拉取所需的容器镜像。如果拉取镜…...

在 Kubernetes(k8s)部署过程中常见的问题

在 Kubernetes(k8s)部署过程中,常见的问题主要包括以下几类,以下是具体示例及简要说明: 1. 资源配额不足(Resource Quota) 现象:Pod 处于 Pending 状态,事件日志显示 Insufficient CPU/Memory。 原因: 节点(Node)资源不足,无法满足 Pod 的 requests 或 limits。 命…...

微信小程序状态管理与计算属性同时使用:miniprogram-computed 和 mobx-miniprogram

两个框架扩展提供的 ComponentWithStore 与 ComponentWithComputed 方法无法结合使用。如果需要在一个组件中既想使用 mobx-miniprogram-bindings 又想使用 miniprogram-computed解决方案是&#xff1a; 使用旧版 API 自定义组件仍然使用 Component 方法构建组件&#xff0c;将…...

Redis设置开机自启报错start-limit-hit

Redis设置开机自启报错start-limit-hit 问题&#xff1a;在银河麒麟服务器上编译安装了redis后设置systemctl开机自启报错start-limit-hit 如何解决&#xff1f; 因为开机自启的需求是后面新增的&#xff0c;所以一开始使用的是命令启动&#xff0c;使用命令启动就会直接在前台…...

[数据结构]排序之 归并排序(有详细的递归图解)

一、非递归 基本思想&#xff1a; 归并排序&#xff08; MERGE-SORT &#xff09;是建立在归并操作上的一种有效的排序算法 , 该算法是采用分治法&#xff08; Divide andConquer&#xff09;的一个非常典型的应用。将已有序的子序列合并&#xff0c;得到完全有序的序列&#x…...

pdf文件分页按需查看

pdf预览本来打算粗暴点&#xff0c;一次性查看全部&#xff0c;但是一个pdf四五百页导致手机端查看超出内存直接崩掉&#xff0c;崩掉会导致页面疯狂刷新&#xff0c;所以不得不进行优化 解决思路大致如下&#xff1a; canvas转为blob格式以图片的形式加载在页面&#xff08;B…...

栈/堆/static/虚表

在 C 里&#xff0c;栈空间主要用来存放局部变量、函数调用信息等。下面为你介绍栈空间在 C 里的运用方式。 1. 局部变量的使用 在函数内部定义的变量会被存于栈空间&#xff0c;当函数执行结束&#xff0c;这些变量会自动被销毁。 #include <iostream>void exampleFu…...

计算机网络技术服务管理基于Spring Boot-SSM

目录 一、引言 二、用户需求分析 三、功能介绍 ‌‌3.1.资源管理‌&#xff1a; ‌3.2.故障管理‌&#xff1a; ‌3.3.性能管理‌&#xff1a; ‌3.4.安全管理‌&#xff1a; ‌3.5.配置管理‌&#xff1a; ‌3.6.日志管理‌&#xff1a; ‌3.7.用户管理‌&#xff1…...

Redisson 分布式锁原理

加锁原理 # 如果锁不存在 if (redis.call(exists, KEYS[1]) 0) then# hash结构,锁名称为key,线程唯一标识为itemKey&#xff0c;itemValue为一个计数器。支持相同客户端线程可重入,每次加锁计数器1.redis.call(hincrby, KEYS[1], ARGV[2], 1);# 设置过期时间redis.call(pexpi…...