GBase 8a数据库RANGE分区操作详细解读

南大通用GBase 8a数据库(gbase database)支持 RANGE 分区,最常用于按日期范围拆分大表。从逻辑上看是一张表,但底层按分区存储,查询时自动做分区裁剪(只扫描相关分区),大幅提升性能。删除过期数据时直接 DROP PARTITION 即可,秒级释放空间。

使用示例

-- 创建按月 RANGE 分区的交易流水表CREATE TABLE txn_flow (txn_id BIGINT,txn_date DATE,amount DECIMAL(12,2),merchant VARCHAR(100)) PARTITION BY RANGE (TO_DAYS(txn_date)) (PARTITION p202601 VALUES LESS THAN (TO_DAYS('2026-02-01')),PARTITION p202602 VALUES LESS THAN (TO_DAYS('2026-03-01')),PARTITION p202603 VALUES LESS THAN (TO_DAYS('2026-04-01')),PARTITION p202604 VALUES LESS THAN (TO_DAYS('2026-05-01')),PARTITION p202605 VALUES LESS THAN (TO_DAYS('2026-06-01')),PARTITION p202606 VALUES LESS THAN (TO_DAYS('2026-07-01')));-- 新增 7 月分区ALTER TABLE txn_flow ADD PARTITION (PARTITION p202607 VALUES LESS THAN (TO_DAYS('2026-08-01')));-- 删除过期分区(秒级释放空间!)ALTER TABLE txn_flow DROP PARTITION p202601;

-- 查看分区信息SELECT PARTITION_NAME AS 分区名,PARTITION_DESCRIPTION AS 分区边界值,TABLE_ROWS AS 预估行数FROM information_schema.partitionsWHERE TABLE_SCHEMA = '你的库名' -- 替换成你实际的数据库名AND TABLE_NAME = 'txn_flow'ORDER BY PARTITION_ORDINAL_POSITION;

最佳实践

  • 建议按月分区,不要用天/小时(分区数过多会影响性能)
  • 分区数控制在 50~60 个以内
  • 每个分区数据量不宜太小(每节点每分区建议 ≥ 650 万行)
相关推荐
姚不倒31 分钟前
etcd 学习系列(一):从业务需求出发,理解 etcd 是什么
运维·数据库·etcd
susplus39 分钟前
【linux应用软件编程】数据库sqlite3
linux·数据库·sqlite
SelectDB43 分钟前
Apache Doris + Lance:让多模态数据真正进入智能驾驶与具身智能的分析闭环
数据库
互联网叫兽1 小时前
redis深入学习二
数据库·redis·学习
疯狂打码的少年1 小时前
【数据库技术】复习日:关系代数 + SQL + 规范化(整理对比表)
jvm·数据库·笔记·sql
先吃饱再说2 小时前
从零开发到工程查询:SQLite 嵌入式数据库与高级 SQL 实战
数据库
ShineWinsu2 小时前
对于MySQL:数据库的操作的解析
linux·数据库·c++·mysql·面试·笔试·库的操作
‎ദ്ദിᵔ.˛.ᵔ₎2 小时前
MySQL 数据类型
数据库·mysql
这个DBA有点耶2 小时前
索引合并不是万能药:MySQL同时用两个索引,为什么比不用还慢?
数据库·mysql·dba
Aime_Perfect3 小时前
sqlserver AlwaysOn(一)
数据库·sqlserver