postgis数据库优化_postgresql 性能优化

本文深入探讨了PostgreSQL数据库的性能优化,特别是针对PostGIS的优化。主要内容包括避免排序、合理使用索引、选择合适的连接查询方式、调整连接顺序以及运用优化策略,如使用EXPLAIN分析执行计划、更新统计信息、利用临时表和修改数据库参数等。
摘要由CSDN通过智能技术生成

编辑推荐:

本文来自于cnblogs,本文主要介绍了postgresql连接查询方式、优化思路、优化方案等相关知识。

一个优化的SQL:

SELECT order_date,

order_source,

SUM(commodity_num) num,

SUM(actual_charge) charge

FROM (

SELECT to_char(oc.create_date, 'yyyyMMdd') AS

order_date,

(CASE

WHEN oo.event_type = 'ONLINE_COMMODITY_ORDER'

THEN

'线上'

ELSE

'线下'

END) order_source,

oc.commodity_num,

oc.actual_charge actual_charge

FROM ord.ord_commodity_hb_2017 AS oc, ord.ord_order_hb_2017

AS oo

WHERE oc.order_id = oo.order_id

AND oc.op_type = 3 -- 3个值 ,3->5000 大概1/20的数据

AND oc.create_date BETWEEN '2017-02-05' AND '2017-12-07'

-- 无用

AND oc.corp_org_id = 106 -- 无用

AND oo.trade_state = 11 -- 3个值 11 --> 71万行,一半数据

AND oo.event_type IN (values('ONLINE_COMMODITY_ORDER'),

('USER_CANCEL'),

('USER_COMMODITY_UPDATE')) -- 大概1/10 数据

ORDER BY oc.create_date -- 如果业务不强制,最好去掉排序,如果不能去掉,最好等过滤数据量到尽量小时再排序

) T

GROUP BY order_date, order_source;

下面默认以postgresql为例:

一、排序:

1. 尽量避免

2. 排序的数据量尽量少,并保证在内存里完成排序。

(至于具体什么数据量能在内存中完成排序,不同数据库有不同的配置:

oracle

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值