PostgreSQL 性能优化存储过程
项目背景:A系统同步B系统数据
实现过程:
A.系统数据以a表a_CVS文件存储在cos服务器上
B.系统daily job
i. 下载csv文件,并将cvs文件导入ods表中
ii. 运行ETL代码,从view中抽取数据加载导相关表中
抽取view中
- 同种数据存在多条,分组后创建辅助字段row_number()在根据查找最准确的一条。例:
drop view if exists vw_hco;
create or replace view vw_hco
as
select row_number() over(partition by code order by status) as rn,t.*
from
( select * from ** where **
) t;
2.创建、索引、view-》表
view视图:
物化视图+索引:
create materialized view vwm_hco as select * from vw_hco;
create index idx_vwm_hco_code on vwm_hco(code);
materialized view相当于将数据在硬盘保存一份,可以加索引来提高查找速度。但是 materialized view 保证不能和表实时同步,需要自己定时同步数据。
普通的table表:空间换时间
临时表:可作为临时使用的中间表来进行转化
CREATE TEMP TABLE IF NOT EXISTS stock_move_smy AS
select product_id,location_id,sum(quant) as quant from
(
select product_id

本文介绍了在PostgreSQL中进行性能优化的一些实践,包括利用存储过程、物化视图、索引、递归处理和数据转换等技术。在处理CSV文件导入、ETL流程、树形结构数据以及日期和字符转化时,通过特定方法提升查询效率和数据处理性能。
最低0.47元/天 解锁文章
5200

被折叠的 条评论
为什么被折叠?



