PostgreSQL创建分区表,并插入大量数据

创建分区表,按日期范围分区

sql 复制代码
CREATE TABLE sales (
    id              serial,
    sale_date DATE,    
    amount NUMERIC,    
    PRIMARY KEY(id, sale_date)
) PARTITION BY RANGE (sale_date);

创建分区

sql 复制代码
CREATE TABLE sales_2019 PARTITION OF sales FOR VALUES FROM ('2019-01-01') TO ('2020-01-01'); 
CREATE TABLE sales_2020 PARTITION OF sales FOR VALUES FROM ('2020-01-01') TO ('2021-01-01'); 
CREATE TABLE sales_2021 PARTITION OF sales FOR VALUES FROM ('2021-01-01') TO ('2022-01-01'); 
CREATE TABLE sales_2022 PARTITION OF sales FOR VALUES FROM ('2022-01-01') TO ('2023-01-01'); 
CREATE TABLE sales_2023 PARTITION OF sales FOR VALUES FROM ('2023-01-01') TO ('2024-01-01'); 

插入随机日期和随机金额数据,每次插入2190001条数据

sql 复制代码
INSERT INTO sales (sale_date, amount)  
SELECT generate_series(to_date('2019-01-01','yyyy-mm-dd'), to_date('2023-12-31','yyyy-mm-dd'), '0.02 hours'), (random()*100.)::numeric(6,2);

测试性能

sql 复制代码
select count(1) from sales;

插入数据sql参考:https://pgfans.cn/a/1726

原文中有中类型的随机数据插入可供参考。

相关推荐
星火开发设计4 分钟前
序列式容器:list 双向链表的特性与用法
开发语言·前端·数据结构·数据库·c++·链表·list
Zzz 小生8 分钟前
LangChain Messages:消息使用完全指南
数据库·windows·microsoft
数据知道20 分钟前
PostgreSQL:Citus 分布式拓展,水平分片,支持海量数据与高并发
分布式·postgresql·wpf
寂寞旅行9 小时前
向量数据库Milvus的使用
数据库·milvus
闻哥9 小时前
Redis事务详解
java·数据库·spring boot·redis·缓存·面试
道亦无名10 小时前
aiPbMgrSendAck
java·网络·数据库
面向对象World12 小时前
正点原子Mini Linux 4.3寸800x480触摸屏gt115x驱动
linux·服务器·数据库
dinga1985102613 小时前
mysql之联合索引
数据库·mysql
微风中的麦穗13 小时前
【SQL Server 2019】企业级数据库系统—数据库SQL Server 2019保姆级详细图文下载安装完全指南
大数据·数据库·sqlserver·云计算·个人开发·运维必备·sqlserver2019
zjttsh14 小时前
MySQL加减间隔时间函数DATE_ADD和DATE_SUB的详解
android·数据库·mysql