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 万行)
相关推荐
某不知名網友2 小时前
MySQL数据表详解|创建、查看、修改、删除实战教程
数据库·mysql
Wang's Blog2 小时前
PostgreSQL笔记20: 实例、集群、模板数据库与表空间 —— 逻辑体系架构深度解析
数据库·笔记·postgresql
杨运交10 小时前
[060][调度模块]Redisson vs Redis 原生锁:两种分布式锁实现深度对比
数据库·redis·分布式
FungLeo10 小时前
Node 后端实战 · 列表查询到底怎么写?一个通用 DSL 封装,过滤分页排序一次搞定
数据库·node.js·serverless·dsl 封装·通用列表查询
抓蛙师11 小时前
多租户 tenant_id SQL 注入漏洞分析与应急响应报告
数据库·sql
ACP广源盛1392462567311 小时前
Qwen3.8‑2.4T 开源落地@ACP#国产 MoE 私有化部署下 GSV2221 视频转换芯片机遇分析
大数据·数据库·人工智能
七牛开发者12 小时前
为什么 Go 很适合 AI 辅助开发?
数据库·人工智能·python·elasticsearch·log4j
何以解忧,唯有..14 小时前
数据库索引失效的常见情况与优化策略
数据库·sql·oracle
这个DBA有点耶14 小时前
分布式数据库到底该不该上?从判断标准到架构选型的实战思考
数据库·架构·dba