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

【赵渝强老师】OceanBase的分区表

OceanBase当前支持的类型包括Range分区、Range COLUMNS分区、List分区、List COLUMNS分区、Hash分区和Key分区等其中Range分区、Range COLUMNS分区、List分区和List COLUMNS分区可以用于解决业务中大量删除带来的性能问题支持快速删除分区。Hash分区和Key分区可以用于大量写入场景下的数据打散。与Hash分区相比Key分区支持多列打散和非整数类型字段的打散。视频讲解如下【赵渝强老师】OceanBase的分区表下面分别介绍这几种分区表。一、 Range分区一个表按Range分区是指对于表的每个分区中包含的所有行按分区表达式计算的值都落在给定的范围内。Range必须是连续的并且不能有重叠通过使用VALUES LESS THAN进行定义。下面通过一个示例来进行演示。1创建一张新的员工表按照薪水建立Ranger分区。obcreatetableemp_range(empnoint,enamevarchar(10),jobvarchar(10),mgrint,hiredatevarchar(10),salint,commint,deptnoint)partitionbyrange(sal)(partitionp0valuesless than(1000),partitionp1valuesless than(3000),partitionp2valuesless than maxvalue);2往表中插入数据。obinsertintoemp_rangeselect*fromemp;3查询薪水在2000~2500之间的员工并查看执行计划。obexplainselect*fromemp_rangewheresalbetween2000and2500;# 提示从执行计划可以看出本次查询只扫描分区p1。二、 Range COLUMNS分区Range COLUMNS分区是Range分区的一种变体。可以使用一个或者多个列作为分区键分区列的数据类型可以是整数(integer)、字符串CHAR/VARCHARDATE和DATETIME。不支持使用任何表达式。和Range分区一样Range COLUMNS分区同样需要分区的范围是严格递增的。下面通过一个示例来进行演示。1创建一张新的员工表按照职位和薪水建立Range COLUMNS分区。obcreatetableemp_range_column(empnoint,enamevarchar(10),jobvarchar(10),mgrint,hiredatevarchar(10),salint,commint,deptnoint)partitionbyrangecolumns(job,sal)(partitionp0valuesless than(CLERK,1000),partitionp1valuesless than(CLERK,3000),partitionp2valuesless than(CLERK,maxvalue),partitionp3valuesless than(SALESMAN,1000),partitionp4valuesless than(SALESMAN,3000),partitionp5valuesless than(SALESMAN,maxvalue));2往表中插入数据。obinsertintoemp_range_columnselect*fromemp;3查询职位是CLERK且薪水小于2500之间的员工并查看执行计划。obexplainselect*fromemp_rangewherejobCLERKandsal2500;# 提示从执行计划可以看出本次查询只扫描分区p0和p1。三、 List分区List分区和Range分区有很多相似的地方。不同之处主要在于List分区中对于表的每个分区中包含的所有行按分区表达式计算的值属于给定的数据集合。每个分区定义的数据集合有任意个值但不能有重复的值。下面通过一个示例来进行演示。1创建一张新的员工表按照部门号建立List分区。obcreatetableemp_list(empnoint,enamevarchar(10),jobvarchar(10),mgrint,hiredatevarchar(10),salint,commint,deptnoint)partitionbylist(deptno)(PARTITIONp0VALUESIN(10,20),PARTITIONp1VALUESIN(30),PARTITIONp2VALUESIN(default));2往表中插入数据。obinsertintoemp_listselect*fromemp;3查询40号部门的员工并查看执行计划。obexplainselect*fromemp_listwheredeptno30;# 提示从执行计划可以看出本次查询只扫描分区p1。四、 List COLUMNS分区List COLUMNS分区是List分区的一种变体可以将多个列用作分区键并且可以将整数类型以外的数据类型的列用作分区列。该分区还可以使用字符串类型、DATE和DATETIME类型的列。下面通过一个示例来进行演示。1创建一张新的员工表按照薪水建立Range INTERVAL分区。obcreatetableemp_list_columns(empnoint,enamevarchar(10),jobvarchar(10),mgrint,hiredatevarchar(10),salint,commint,deptnoint)partitionbylistcolumns(job)(PARTITIONp0VALUESIN(MANAGER),PARTITIONp1VALUESIN(CLERK),PARTITIONp2VALUESIN(SALESMAN),PARTITIONp3VALUESIN(ANALYST),PARTITIONp4VALUESIN(PRESIDENT));2查看表上的分区信息。obshowcreatetableemp_list_columns \G;# 输出的信息如下***************************1.row***************************Table: emp_list_columnsCreateTable:CREATETABLEemp_list_columns(empnoint(11)DEFAULTNULL,enamevarchar(10)DEFAULTNULL,jobvarchar(10)DEFAULTNULL,mgrint(11)DEFAULTNULL,hiredatevarchar(10)DEFAULTNULL,salint(11)DEFAULTNULL,commint(11)DEFAULTNULL,deptnoint(11)DEFAULTNULL)ORGANIZATIONINDEXDEFAULTCHARSETutf8mb4 ROW_FORMATDYNAMIC COMPRESSIONzstd_1.3.8REPLICA_NUM1BLOCK_SIZE16384USE_BLOOM_FILTERFALSEENABLE_MACRO_BLOCK_BLOOM_FILTERFALSETABLET_SIZE134217728PCTFREE0partitionbylistcolumns(job)(partitionp3valuesin(ANALYST),partitionp1valuesin(CLERK),partitionp0valuesin(MANAGER),partitionp4valuesin(PRESIDENT),partitionp2valuesin(SALESMAN))1rowinset(0.035sec)五、 Hash分区Hash分区会根据数据的Hash值建立分区如果数据的Hash值一样那么数据将会放入同一个分区中。Hash分区主要用于保证数据均匀地分散到一定数量的分区里面。下图解释了Hash分区的原理。下面的语句将创建一张新的员工表按照经理号mgr建立4个Hash分区。obcreatetableemp_hash_by_mgr(empnoint,enamevarchar(10),jobvarchar(10),mgrint,hiredatevarchar(10),salint,commint,deptnoint)partitionbyhash(mgr)partitions4;# 提示如果不指定partitions 4默认的分区数量为 1。六、 Key分区Key分区与Hash分区都可以保证将数据均匀地分散到一定数量的分区里面区别是Hash分区只能根据一个指定的整数表达式或字段进行分区而Key分区可以根据字段列表进行分区且Key分区的分区字段不局限于整数类型。创建Key分区表时你需要在CREATE TABLE后面添加PARTITION BY KEY(columnList)其中columnList是字段列表可以包含一个或多个字段。每个字段的类型可以是除BLOB、JSON、GEOMETRY之外的任意类型请注意TiDB不支持GEOMETRY类型。此外你很可能还需要加上PARTITIONS num其中num是一个正整数表示将表划分多少个分区。下面的语句将创建一个Key分区表按员工的职位job分成4个分区obcreatetableemp_hash_by_job(empnoint,enamevarchar(10),jobvarchar(10),mgrint,hiredatevarchar(10),salint,commint,deptnoint)partitionbykey(job)partitions4;

相关文章:

【赵渝强老师】OceanBase的分区表

OceanBase当前支持的类型包括Range分区、Range COLUMNS分区、List分区、List COLUMNS分区、Hash分区和Key分区等,其中: Range分区、Range COLUMNS分区、List分区和List COLUMNS分区可以用于解决业务中大量删除带来的性能问题,支持快速删除分…...

AI大模型时代的企业可观测性架构设计方案

一、架构设计原则:AI原生可观测性的核心理念1. 统一标准,打破数据孤岛在AI大模型时代,传统的割裂式监控工具(如Prometheus监控基础设施、ELK日志分析、Jaeger链路追踪)已无法满足复杂AI系统的可观测需求。必须采用Open…...

2010-2025年上市公司国地税改革DID数据

本数据以张浩天和卢盛峰(2025)《国地税机构合并与政府补助策略性调整》研究框架为参考,构建上司公司国地税改革DID虚拟变量。国地税合并的核心目标之一是提升税收治理效能,降低征纳成本,优化营商环境。然而&#xff0c…...

程序包javax.validation.constraints不存在

在现代Java企业级应用开发中,数据校验是保障系统健壮性与安全性的第一道防线。无论是Web API的请求参数、数据库实体的持久化字段,还是微服务间的消息传递,都离不开对数据合法性的严格审查。javax.validation.constraints(及其继任…...

探店无数,平凉这口五仁月饼最难忘

我是浙江人,在广州工作。品质出众次听说五仁月饼是在一个平凉同事嘴里。他形容了半天"外头酥里头软"、"麦香特别浓"、"能撕着吃",我完全想象不出来——一个饼子能有多特别?直到他寄了一盒给我。探店无数&#…...

“程序包io.swagger.annotations不存在”终极解决方案:从原理到实战的万字深度剖析(2026年最全最新解决方案)

在现代Java Web开发中,API文档的自动生成与可视化测试已成为提升团队协作效率的关键环节。Swagger作为业界最主流的OpenAPI规范实现工具,凭借其强大的注解驱动能力,让开发者能够“代码即文档”。然而,许多开发者在初次集成或升级项…...

装好Hermes只是第一步:四步调教,让AI“越用越聪明”

Hermes Agent 深度配置指南:从“装好了”到“超好用”,四步调教你的自进化 AI 很多人装完 Hermes Agent 的第一反应都差不多:能跑,能聊,也能调几个工具,看起来已经挺强。 但说实话,这还只是“装…...

如何监控集群 interconnect_ping与traceroute验证心跳通畅.txt

MySQL启动报错本质是未找到配置文件,实际按固定顺序搜索/etc/my.cnf等路径;可通过mysqld --help --verbose查看搜索顺序,优先在其中一路径放置含datadir、socket、user的最小my.cnf;注意systemd或launchd可能覆盖默认路径&#xf…...

嵌入式单片机/STM32模块开源代码地图

GitHub 网址:https://github.com/ 当需要找模板时,可以这样搜索:芯片平台 模块名 关键词(driver/library/embeded) 例如: 找 OLED 驱动:stm32 oled i2c driver 找震动电机:vibra…...

CSS如何为Bootstrap按钮增加渐变色_利用background linear-gradient

Bootstrap按钮需用!important覆盖background-color并重写:hover/:active伪类,或改用background-imagetransparent方案,同时适配深色模式与移动端点击反馈。Bootstrap按钮默认不支持background: linear-gradient()直接覆盖因为Bootstrap(尤其是…...

GPT-4o 推理能力全解析:架构革新到底强在哪?

GPT-4o的发布标志着推理能力进入新阶段——它不再仅仅是“更聪明的聊天机器人”,而是一个能够同时理解文本、图像、音频并进行跨模态联合推理的统一引擎。根据官方技术文档,GPT-4o在MMLU(大规模多任务语言理解)上达到87.2%&#x…...

Android Camera2 + OpenGL 竖屏或横屏预览会有“轻微拉伸”

前言在进行 Android 相机底层开发(Camera2 OpenGL ES)时,开发者经常会遇到各种拉伸问题。有一种最隐蔽的“轻微拉伸”:画面方向正确,预览也没变黑,但人脸看起来明显比平时“瘦长”了一点点。本文将结合一次…...

什么是NVSRAM?NVSRAM内部结构有何特点?

1、什么是NVSRAM?内部结构有何特点? 从内部架构来看,一颗NVSRAM芯片相当于将一颗SRAM和一颗EEPROM“绑定”在一起,并集成相应的控制逻辑。尽管功能复杂,其物理尺寸却与普通存储芯片相差无几,这大大节省了PC…...

德州仪器线上笔试-学习-2026.4.15

今天下午收到德州仪器的笔试邮件,大概意思是,我之前投的fae实习岗位的简历通过初筛了今天晚上在线上笔试。笔试对我来说挺难的。...

从几何视角直观理解对偶性:强对偶、弱对偶与KKT条件的可视化证明

1. 从几何视角理解优化问题的基本框架 想象你正在规划一次登山活动。山的地形就是你的目标函数,而各种限制条件(比如必须携带的装备重量、时间限制等)就是约束条件。优化问题本质上就是在这些限制下,找到最佳的登山路径。这就是优…...

Skiller:一款跨平台的 AI Skills管理工具

Skiller:一处管理,多处分发 —— 你的 AI 技能统一调度中心 写一次,用到处处。让 AI 技能在 Claude Code、OpenCode、Cursor 之间自由流动。 github pages 问题:AI 工具多了,技能管理乱了 如果你同时使用多个 AI 编程…...

智能科学毕设易上手项目选题答疑

0 选题推荐 - 大数据篇 毕业设计是大家学习生涯的最重要的里程碑,它不仅是对四年所学知识的综合运用,更是展示个人技术能力和创新思维的重要过程。选择一个合适的毕业设计题目至关重要,它应该既能体现你的专业能力,又能满足实际应…...

PX4飞控配置光流模块

PX4固件启用光流模块 理解Pixhawk的串口接口 先设置飞控参数,启用串口,如MAV_0_CONFIG。 参考:https://docs.px4.io/main/en/peripherals/serial_configuration TELEM 1 is configured as a MAVLink serial port suitable for connection…...

别再死记硬背AUC公式了!用Python+Sklearn画个ROC曲线,5分钟搞懂AUC到底在算什么

用Python实战解锁AUC:从代码到直觉的认知跃迁 记得第一次接触AUC时,我被各种公式和理论解释绕得头晕——直到亲手用Python画出第一条ROC曲线,那些抽象概念突然变得鲜活起来。本文将带你用不到20行代码,完成从数据加载到AUC计算的全…...

别再手动升级了!手把手教你用STM32 IAP实现产品远程固件更新(附代码)

STM32 IAP实战:构建企业级远程固件更新系统 当你的智能家居网关出货量突破10万台时,凌晨3点的客服电话突然响起——客户抱怨设备无法连接新上线的云服务。传统解决方案需要召回设备或派遣技术人员,而具备IAP能力的设备只需推送一个OTA更新包。…...

公司又要改流程了?先别急着皱眉头

每次公司宣布要改流程,或者组织要调整,工程师群体里最先出现的,往往不是讨论,而是情绪。私下里开始传:这次又要折腾什么?上次改完还没稳,又来一轮?这种反应可以理解。芯片研发本来就…...

STM32F103C8T6最小系统板避坑指南:从Keil5安装到OLED显示,新手必看的10个实战问题

STM32F103C8T6最小系统板避坑指南:从Keil5安装到OLED显示,新手必看的10个实战问题 第一次接触STM32F103C8T6最小系统板时,那种既兴奋又忐忑的心情至今难忘。作为嵌入式开发的经典入门平台,这块蓝色的小板子藏着无数可能性&#xf…...

转行AI应用开发工程师需要会什么?

🎯核心要求: Python、torch必须能手写; 神经网络、深度学习原理、Transformer底层机制(forward、attention)要吃透,不能只调库。 🚀企业级能力四大块: 小模型工程能力&#xff08…...

while(1);的top-down分析

对于简单的while(1)循环:int main(){ while(1); return 0;}L1:L2:L3/L4:为什么 Core Bound 是 0%?这是最关键的逻辑:没有“停顿(Stall)”,就没有“受限(Bound)”。没有…...

黑群晖转白群晖DS920+数据迁移全记录(含避坑指南)

从非官方设备迁移至群晖DS920的全流程数据安全指南 当技术爱好者决定从非官方设备转向正版群晖设备时,数据迁移往往是最大的心理障碍。我最近刚完成从自制设备到DS920的完整迁移,整个过程比想象中顺利得多,但也确实有几个关键节点需要特别注意…...

3D打印风向标:工业下沉、消费升级,惠普、拓竹两巨头同日发布新品

3D打印技术参考注意到,惠普与拓竹两家3D打印行业巨头,均在4月14日发布了最新3D打印解决方案。两款新品,均有在让普通用户能使用到高阶3D打印技术的意味。惠普:技术下沉,拓展中小市场惠普方面,它推出了全新的…...

高效清理Windows 11系统臃肿:从卡顿到流畅的终极解决方案

高效清理Windows 11系统臃肿:从卡顿到流畅的终极解决方案 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and…...

猫抓浏览器扩展:从混乱到有序的视频资源智能管理指南

猫抓浏览器扩展:从混乱到有序的视频资源智能管理指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾经面对下载文件夹中那些毫…...

MoveIt!与OMPL实战避坑:为什么你的机械臂规划总失败?可能是算法没选对

MoveIt!与OMPL算法选择实战:机械臂规划失败的深层解决方案 机械臂运动规划是机器人开发中最令人头疼的环节之一。当你看着机械臂在仿真中卡顿、在实物调试中撞上障碍物,或是规划出那些匪夷所思的"杂技动作"时,是否曾怀疑过&#xf…...

终极家庭音乐体验优化指南:打造智能跨平台音乐管理方案

终极家庭音乐体验优化指南:打造智能跨平台音乐管理方案 【免费下载链接】Synology-LrcPlugin Lyrics plugin for Synology Audio Station/DS Audio 项目地址: https://gitcode.com/gh_mirrors/sy/Synology-LrcPlugin 还在为家中不同设备上的音乐播放体验不一…...