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

读书笔记:白话解读Oracle范围分区

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!
由于博客中有大量代码,通过页面浏览效果更佳。

本文为个人学习《Expert Oracle Database Architecture Techniques and Solutions for High Performance and Productivity(第四版本》一书过程中的笔记与理解分享,仅用于学习与交流,部分内容参考原书观点并结合>实际经验进行整理。若涉及版权问题,请联系删除或沟通处理。也请大家支持购买原版书籍。

白话解读Oracle范围分区

什么是范围分区?
想象一下你有一个超大文件柜,里面塞满了按日期排序的文件。为了快速找到某天的文件,你可以在文件柜上贴标签:

  • 第一个抽屉放「2021年之前」的所有文件
  • 第二个抽屉放「2021整年」的文件
    这就是范围分区的核心思想——按数值范围划分存储空间。

具体如何操作?
用以下SQL建表时,我们明确规定了分区规则:

CREATE TABLE range_example(range_key_column date NOT NULL,  -- 分区依据列data varchar2(20)
)
PARTITION BY RANGE (range_key_column)
(PARTITION part_1 VALUES LESS THAN ('2021-01-01'), -- 2021年前数据PARTITION part_2 VALUES LESS THAN ('2022-01-01')  -- 2022年前数据
);

注意这两个关键词:

  1. LESS THAN(严格小于):

    • 2020-12-31 23:59:59 → 进part_1
    • 2021-01-01 00:00:00 → 进part_2
      就像考试60分及格,59.9分也算不及格
  2. 国际化日期格式
    使用dd/mm/yyyy避免语言环境问题。如果用dd-mon-yyyy,在非英语系统可能因月份缩写不一致(如中文系统不认识"Jan")导致建表失败。

实际效果验证
插入测试数据后查询可见:

-- 分区1数据:2020-12-15 至 2020-12-31
-- 分区2数据:2021-01-01 至 2021-12-31

超出范围怎么办?
如果尝试插入2022年的数据,Oracle会直接报错:

ORA-14400: 插入的分区键无法映射到任何分区

就像试图把2022年的文件塞进标注「仅存放2021年及以前」的抽屉。

解决方案:设置万能分区
通过增加MAXVALUE分区兜底所有特殊情况:

PARTITION part_3 VALUES LESS THAN (MAXVALUE) -- 接收所有不符合条件的数据

现在这个文件柜变成了:

  • 抽屉1:2021年前文件
  • 抽屉2:2021年文件
  • 抽屉3:其他所有文件(包括2022年后、日期为空等特殊情况)

核心价值
范围分区通过物理隔离不同时间段的数据,使以下操作更高效:

  1. 查询特定时间段数据时,只需扫描对应分区
  2. 清理历史数据时,直接删除整个分区
  3. 维护操作可针对单个分区进行,不影响整体可用性

这种设计特别适合时序类数据(如订单、日志、监控数据),让数据库既保持管理便捷性,又提升查询性能。

------------------作者介绍-----------------------
姓名:黄廷忠
个人博客: (http://www.htz.pw)
CSDN地址: (https://blog.csdn.net/wwwhtzpw)
博客园地址: (https://www.cnblogs.com/www-htz-pw)

http://www.zskr.cn/news/27330.html

相关文章:

  • Oracle故障处理:10G RAC srvctl注册实例正常,但是crs切不能管理实例
  • 详细介绍:资产信息收集与指纹识别:HTTPX联动工具实战指南
  • 易基因:剑桥大学团队利用微量WGBS等揭示DNMT3L在胎盘发育中的DNA甲基化调控机制:CSC(IF20.5)
  • 102302134陈蔡裔数据采集第一次作业
  • 2025吹塑机厂家权威推荐:鼎浩包装科技实力企业,专业定制高效生产方案
  • 2025年10月注册公司推荐:权威榜对比评测
  • 神经网络之激活函数Softmax - 教程
  • 2025年10月工业洗地机厂家推荐:权威评测榜与全维度对比指南
  • 2025年10月上海装修公司评测榜:五强性价比与资质全对比
  • 2025年10月洗碗机品牌评测:海信领衔榜单
  • 2025年10月代理记账公司推荐:权威榜单对比全维度评测
  • OOP-实验2
  • 2025年10月小红书代理商推荐榜:官方授权与实战案例对比评测
  • 2025年10月西安种植牙医院推荐榜:五强对比评测
  • 2025年10月短视频营销公司对比评测榜:孙圈圈领衔增长型IP服务排行
  • 2025年10月抖音代理商榜单:本地推与千川服务能力对比
  • P11024 做题报告
  • 完整教程:大模型开发 - 04 QuickStart_DeepSeek 模型调用流程源码解析:从 Prompt 到远程请求
  • 2025年10月消泡剂厂家推荐:权威榜单一网打尽
  • VMware Holodeck 9.0.1.0 发布 - 自动化部署 VCF 实验环境
  • 2025年10月河道防撞护栏厂家全景解析报告,基于专业测评的技术、性能及市场优势深度分析
  • 无穷小比较、等价无穷小替换
  • 【项目复现上新】Karpathy大神开源GitHub高分项目NanoChat!仅用100美元+8000行代码手搓ChatGPT
  • 2025年10月半封闭滑轨丝杆模组厂家全景解析报告,基于专业测评的技术、性能及市场优势深度分析
  • 2025年10月简易丝杆模组定制厂家全景解析报告,基于专业测评的技术、性能及市场优势深度分析
  • Android 应用多模块开发时,子模块只有 release buildType 时编译报错怎么办?
  • ipad协议对个人微信机器人进行二次开发
  • 深入解析:【ROS2学习笔记】话题通信篇:话题通信再探
  • 【IEEE出版、中国科学院宁波材料所主办】第五届机械自动化与电子信息工程国际学术会议(MAEIE 2025)
  • 氛围灯动态屏保取色方案二