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

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

相关推荐
dFObBIMmai几秒前
JavaScript中对象生命周期与垃圾回收的引用关系
jvm·数据库·python
2401_82469766几秒前
Go语言怎么格式化时间_Go语言time.Format教程【详解】
jvm·数据库·python
2303_821287381 分钟前
HTML函数在低背光键盘上编写困难吗_输入设备舒适度说明【介绍】
jvm·数据库·python
爱喝水的鱼丶1 分钟前
SAP-ABAP:ABAP Development Tools(ADT)安装配置学习分享教程(四篇连载)第四篇:ADT连接故障排查与环境迁移教程
运维·开发语言·数据库·学习·sap·abap
2301_783848652 分钟前
防范SQL注入的SQL编码规范_禁用动态拼接字符串语句
jvm·数据库·python
weixin_444012933 分钟前
Angular 表单中基于下拉选择动态启用字段必填校验的完整实现
jvm·数据库·python
zjy277774 分钟前
CSS解决浮动元素导致的布局闪烁_稳定容器布局高度
jvm·数据库·python
2501_901006475 分钟前
MySQL主从复制过程中怎么增加从库_利用mysqldump快速扩容从库
jvm·数据库·python
weixin_704266055 分钟前
MySQL到ES
数据库·mysql·elasticsearch
曲幽5 分钟前
让FastAPI Agent真正记住你:聊聊会话记忆与持久化存储的落地实践
redis·python·postgresql·fastapi·web·chat·async·session·ai agent