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

ORACLE的分区(一)

目录

一、分区概念

二、表分区的优点

三、分区策略


一、分区概念

        随着时间的发展,一个表的数据会越来越多,当数据量增大的时候我们一般采取建立索引优化索引的方式提高查询速度,但是数据量再次增大即使是索引也无法提高速度,这时候我们可以选择表分区,当然也可以通过分表、分库的方式,但是分表、分库会导致程序上的更改,代价比较大,当然也有其他的优化方式,本文不做讨论,本文主要来说一下分区。

        分区顾名思义就是将一个表或索引划分不同的区域,将非常大的表或索引分解成更小、 更易于管理的叫做分区的片断。不只是表可以分区,索引也可以分区。每个分区是一个独立的对象,具有其自己的名称和存储特征(可选的)。分区表采取分而治之的方式,降低每次查询的数据量,从而加快数据库的查询速度。

        打个比方,假设一个人事经理有一只大箱子,其中包含雇员的文件夹。每个文件夹列出了雇员的雇用日期。现实中经常会查询在一个特定月份雇用的雇员。要满足这些要求的一种方法是,对雇员的雇佣日期创建索引,它指向分散在箱子中的这些文件夹的位置。相比之下,分区策略将使用许多更小的箱子,每个小箱子仅包括在一个给定月份内雇用的雇员的文件夹。

        使用更小的箱子具有几个优势。当要检索在 6 月份雇用的员工的文件夹时,人事经理只需检索 6 月份的箱子。此外,如果任何小箱子损坏,则并不影响其他小箱子保持可用。办公室搬家也会变得更容易,因为他不必移动一个很大的箱子,而只需移动几个小箱子。

二、分区的优点

1、数据安全

        分区表中的某个分区不可用并不意味着整个对象不可用。当部分分区不可用时,查询优化器自动从查询计划中删除未引用的分区,而查询不会受影响。

2、维护方便

        已分区对象具有多个分片,可以将其作为一个整体来管理,也可以单独管理各个分片。如重建索引或表,可以一次只移动一个表分区。DDL 语句也可以单独操作某个分区,而不是整个表或索引。并且在删除数据的时候可以直接删除一个分区。

3、并行操作

        在一些 OLTP 系统中,分区可以减少对共享资源的争用。例如,DML 被分散到很多段,而不只是一个段。

4、数据查询

        数据被存储到多个文件上,每次可以查询更好的数据块获取需要的数据,减少了I/O负载,查询速度提高。

三、分区策略

1、分区键

        了解分区策略之前,先了解一下什么是分区键,分区键是一个列或列集,以确定分区表中的每一行应该所在的分区。有了分区键,数据库在拿到每行数据时,才能准确无误的将数据分配的某个分区,这个键必须非常明确,不能模凌两可。

2、分区策略

        Oracle 分区提供了几个分区策略,来控制数据库如何将数据放置到分区。基本策略有范围分区、 列表分区、和哈希分区等。

1)范围分区

        在范围分区中,数据库基于分区键的值范围将行映射到各个分区。范围分区是最常见的分区类型,通常与日期一起使用。下面是个销售表,需要创建为分区表time_range_sales,分区键为time_id。

CREATE TABLE time_range_sales(prod_id NUMBER(6), cust_id NUMBER, time_id DATE, channel_id CHAR(1), promo_id NUMBER(6), quantity_sold NUMBER(3), amount_sold NUMBER(10, 2)
); 
PARTITION BY RANGE (time_id) (PARTITION SALES_1998 VALUES LESS THAN (TO_DATE('01-JAN-1999', 'DD-MON-YYYY')), PARTITION SALES_1999 VALUES LESS THAN (TO_DATE('01-JAN-2000', 'DD-MON-YYYY')), PARTITION SALES_2000 VALUES LESS THAN (TO_DATE('01-JAN-2001', 'DD-MON-YYYY')), PARTITION SALES_2001 VALUES LESS THAN (MAXVALUE)
);

        那么各个的数据分布就如下图所示:

        范围分区键值确定各个范围分区的高值,被称为跃点。在上图中,分区SALES_1998 包含分区键 time_id 值小于跃点 01-JAN-1999 的行。

        如果数据超出跃点怎么办?数据库会创建自动创建间隔分区,用来存储超出跃点的数据。上图中分区 SALES_2001 包含分区键 time_id 值大于或等于 01-JAN-2001 的行。

2)列表分区

        当分区键不方便排序时,可以通过使用列表来分组和组织相关的数据集。例如time_range_sales表中的channel_id,这个值是间断不连续的值,此时可以使用列表分区的方式进行分类。

CREATE TABLE list_sales (prod_id NUMBER(6), cust_id NUMBER, time_id DATE, channel_id CHAR(1), promo_id NUMBER(6), quantity_sold NUMBER(3), amount_sold NUMBER(10, 2)
)
PARTITION BY LIST (channel_id)(PARTITION even_channels VALUES (2,4),PARTITION odd_channels VALUES (3,9)
);

        这时候数据分区会是如下的情况:

3)哈希分区

        在哈希分区中,基于分区键的哈希值来确定如何映射到各区上的,因此,分区的数量会直接影响数据的分布,所以使用哈希分区时,需要指定分区数量。当更改分区数量时,所有的数据会重新分布。我们针对time_range_sales使用prod_id作为分区键,使用哈希分区重新创建表:

CREATE TABLE hash_sales (prod_id NUMBER(6), cust_id NUMBER, time_id DATE, channel_id CHAR(1), promo_id NUMBER(6), quantity_sold NUMBER(3), amount_sold NUMBER(10, 2)
) PARTITION BY HASH (prod_id) PARTITIONS 2;

        这时候数据分区会是如下的情况:

        需要注意的时,哈希分区不能自己指定数据的分区位置,并且需要提前规划好分区数量。

相关文章:

ORACLE的分区(一)

目录 一、分区概念 二、表分区的优点 三、分区策略 一、分区概念 随着时间的发展,一个表的数据会越来越多,当数据量增大的时候我们一般采取建立索引优化索引的方式提高查询速度,但是数据量再次增大即使是索引也无法提高速度,这时…...

【数据结构】C++实现二叉搜索树

二叉搜索树的概念 二叉搜索树又称为二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有结点的值都小于根结点的值。若它的右子树不为空,则右子树上所有结点的值都大于根结…...

Python中Mock和Patch的区别

前言: 嗨喽~大家好呀,这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 在测试并行开发(TPD)中,代码开发是第一位的。 尽管如此,我们还是要写出开发的测试&#xff0c…...

sql server 查询某个字段是否有值 返回bool类型

sql server 查询某个字段是否有值 返回bool类型,true 或 false SELECT ColumnCode,CONVERT(BIT,CASE WHEN LEN(ColumnCode) > 0 THEN 1 ELSE 0 END) AS HasValue FROM dbo.TF_LessonCatalog...

紫光展锐5G芯T820 解锁全新应用场景,让机器人更智能

数字经济的持续发展正推动机器人产业成为风口赛道。工信部数据显示,2023年上半年,我国工业机器人产量达22.2万套,同比增长5.4%;服务机器人产量为353万套,同比增长9.6%。 作为国内商用服务机器人领先企业,云…...

秋招前端面试题总结

1、this指向问题,以前总是迷糊,现在总算是一知半解了。应当遵循以下原则,应该就能做对题目了。 如果一个标准函数,也就是非箭头函数,作为某个对象的方法被调用时,那么这个this指向的就是这个对象。涉及到闭…...

【入门篇】ClickHouse 数据类型

文章目录 1. 引言2. ClickHouse 数据类型2.1 基本数据类型2.1.1 整型2.1.2 浮点型2.1.3 字符串型 2.2 复合数据类型2.2.1 数组2.2.2 枚举类型2.2.3 元组2.2.4 Map2.2.5 Nullable 2.3 特殊数据类型2.3.1 日期和时间类型2.3.2 UUID2.3.3 IP 地址2.3.4 AggregateFunction 2.4 数据…...

关于Python数据分析,这里有一条高效的学习路径

无处不在的数据分析 谷歌的数据分析可以预测一个地区即将爆发的流感,从而进行针对性的预防;淘宝可以根据你浏览和消费的数据进行分析,为你精准推荐商品;口碑极好的网易云音乐,通过其相似性算法,为不同的人…...

基于 json-server 工具,模拟实现后端接口服务环境

文章目录 本地配置后端接口一、安装json-server1、安装 JSON 服务器 安装 JSON 服务器2、创建一个db.json包含一些数据的文件(重点)3、启动 JSON 服务器 启动 JSON 服务器4、现在如果你访问http://localhost:3000/posts/1,你会得到 本地配置后…...

想要精通算法和SQL的成长之路 - 课程表II

想要精通算法和SQL的成长之路 - 课程表 前言一. 课程表II (拓扑排序)1.1 拓扑排序1.2 题解 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 课程表II (拓扑排序) 原题链接 1.1 拓扑排序 核心知识: 拓扑排序是专…...

【sgGoogleTranslate】自定义组件:基于Vue.js用谷歌Google Translate翻译插件实现网站多国语言开发

sgGoogleTranslate源码 <template><div :id"$options.name"> </div> </template> <script> export default {name: "sgGoogleTranslate",props: ["languages", "currentLanguage"],data() {return {//…...

论文总结《A Closer Look at Few-shot Classification Again》

原文链接 A Closer Look at Few-shot Classification Again 摘要 这篇文章主要探讨了在少样本图像分类问题中&#xff0c;training algorithm 和 adaptation algorithm的相关性问题。给出了training algorithm和adaptation algorithm是完全不想关的&#xff0c;这意味着我们…...

Postman使用_参数设置和获取

文章目录 参数引用内置动态参数手动添加参数脚本设置参数脚本获取参数 参数就像变量一样&#xff0c;它可以是固定的值&#xff0c;也可以是变化的值&#xff0c;比如&#xff1a;会根据一些条件或其他参数进行变化。我们如果要使用该参数就需要引用它。 参数引用 引用动态参数…...

【SQL】优化SQL查询方法

优化SQK查询 一、避免全表扫描 1、where条件中少使用&#xff01; 或 <>操作符&#xff0c;引擎会放弃索引&#xff0c;进行全表扫描 2、in \or &#xff0c;用between 或 exist 代替in 3、where 对字段进行为空判断 4、where like ‘%条件’ 前置百分号 5、where …...

Linux-相关操作

2.2.2 Linux目录结构 /&#xff1a;根目录&#xff0c;一般根目录下只存放目录&#xff0c;在Linux下有且只有一个根目录。所有的东西都是从这里开始。当你在终端里输入“/home”&#xff0c;你其实是在告诉电脑&#xff0c;先从/&#xff08;根目录&#xff09;开始&#xf…...

二十、MySQL多表关系

1、概述 在项目开发中&#xff0c;在进行数据库表结构设计时&#xff0c;会根据业务需求以及业务模块之间的关系&#xff0c;分析并设计表结构&#xff0c;由于业务之间相互关联&#xff0c;所以各个表结构之间也存在着各种对应关系 2、多表关系分类 &#xff08;1&#xff0…...

HarmonyOS/OpenHarmony应用开发-DevEco Studio新建项目的整体说明

一、文件-新建-新建项目 二、传统应用形态与IDE自带的模板可供选用与免安装的元服与IDE中自带模板的选择 三、以元服务&#xff0c;远程模拟器为例说明IDE整体结构 1区是工程目录结构&#xff0c;是最基本的配置与开发路径等的认知。 2区是代码开发与修改区&#xff0c;是开发…...

去耦电路设计应用指南(三)磁珠/电感的噪声抑制

&#xff08;三&#xff09;磁珠/电感的噪声抑制 1. 电感1.1 电感频率特性 2. 铁氧体磁珠3. LC 型和 PI 型滤波 当去耦电容器不足以抑制电源噪声时&#xff0c;电感器&磁珠/ LC 滤波器的结合使用是很有效的。扼流线圈与铁氧体磁珠 是用于电源去耦电路很常见的电感器。 1. …...

Spring Bean的获取方式

参考https://juejin.cn/post/7251780545972994108?searchId2023091105493913AF7C1E3479BB943C80#heading-12 记录并补充 1.通过BeanFactoryAware package com.toryxu.demo1.beans;import org.springframework.beans.BeansException; import org.springframework.beans.facto…...

4795-2023 船用舱底水处理装置 学习记录

声明 本文是学习GB-T 4795-2023 船用舱底水处理装置. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件规定了船用舱底水处理装置(以下简称处理装置)中舱底水分离器(以下简称分离器)和舱底 水报警装置(以下简称报警装置)的要求、试验方法…...

HoRain云--PHP日期格式化函数date()详解与最佳实践

&#x1f3ac; HoRain 云小助手&#xff1a;个人主页 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站&#xff0c;性价比超高&#xff0c;大内存超划算&#xff01;忍不住分享一下给大家。点击跳转到网站。 目录 ⛳️ 推荐 …...

解锁PS4游戏存档的终极掌控:Apollo Save Tool深度技术解析

解锁PS4游戏存档的终极掌控&#xff1a;Apollo Save Tool深度技术解析 【免费下载链接】apollo-ps4 Apollo Save Tool (PS4) 项目地址: https://gitcode.com/gh_mirrors/ap/apollo-ps4 在PlayStation 4的游戏生态中&#xff0c;PS4存档管理和游戏数据修改一直是玩家和开…...

终极指南:5步安装Koikatu HF Patch解锁完整游戏体验

终极指南&#xff1a;5步安装Koikatu HF Patch解锁完整游戏体验 【免费下载链接】KK-HF_Patch Automatically translate, uncensor and update Koikatu! and Koikatsu Party! 项目地址: https://gitcode.com/gh_mirrors/kk/KK-HF_Patch KK-HF Patch是专为《恋活&#xf…...

基于RAG与MCP协议构建实时新闻AI助手:newsmcp项目实战解析

1. 项目概述&#xff1a;一个让AI“读新闻”的智能工具最近在折腾AI应用开发的朋友&#xff0c;可能都绕不开一个核心问题&#xff1a;如何让大语言模型&#xff08;LLM&#xff09;获取并理解最新的、模型训练数据之外的信息&#xff1f;比如&#xff0c;你想让ChatGPT帮你分析…...

Python轻量级Web框架fws:从核心原理到RESTful API实战

1. 项目概述&#xff1a;一个轻量级、可扩展的Web服务框架在构建现代Web应用时&#xff0c;我们常常面临一个选择&#xff1a;是使用功能全面但可能略显臃肿的成熟框架&#xff0c;还是从零开始&#xff0c;只为满足特定需求而构建一个精简的解决方案&#xff1f;前者提供了开箱…...

WaveTools终极指南:免费解锁鸣潮120FPS帧率限制的完整方案

WaveTools终极指南&#xff1a;免费解锁鸣潮120FPS帧率限制的完整方案 【免费下载链接】WaveTools &#x1f9f0;鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools WaveTools是一款专为《鸣潮》PC版设计的开源工具箱&#xff0c;通过创新技术方案帮助…...

轻量级容器编排工具Herdctl:填补Docker Compose与K8s之间的空白

1. 项目概述&#xff1a;从容器到集群的轻量级管理工具如果你和我一样&#xff0c;长期在容器化和微服务架构的领域里摸爬滚打&#xff0c;那你一定对docker和docker-compose这两个名字再熟悉不过了。它们几乎是单体容器和多容器应用编排的“标准答案”。然而&#xff0c;当我们…...

MCA Selector终极指南:Minecraft世界区块管理的核心技术解析与实战应用

MCA Selector终极指南&#xff1a;Minecraft世界区块管理的核心技术解析与实战应用 【免费下载链接】mcaselector A tool to select chunks from Minecraft worlds for deletion or export. 项目地址: https://gitcode.com/gh_mirrors/mc/mcaselector MCA Selector是一款…...

主动悬架乘坐舒适性控制策略优化【附模型】

✨ 长期致力于随机路面、主动悬架、乘坐舒适性、控制策略、仿真分析研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;随机路面与1/4悬架动力学建模&…...

内存数据库eXtremeDB核心技术解析与实践指南

1. 内存数据库技术概述在传统数据库系统中&#xff0c;磁盘I/O往往是性能瓶颈所在。每次数据查询都需要从磁盘读取数据到内存缓冲区&#xff0c;这个过程中涉及机械寻道、旋转延迟等物理限制。而内存数据库(IMDS)通过直接在内存中存储和处理数据&#xff0c;彻底绕过了这个瓶颈…...