1、/2024.01.04/PostgreSQL数据库优化技巧与实践傅强美创科技DBACONTENT架构设计01数据库整体性能慢分析02SQL优化03常用扩展插件04架构优化05PART 01架构设计/2024.01.04/基于单机房单集群的架构设计0 10 20 3一主一备架构建议部署一套5节点ETCD独立集群适用于简单业务、非核心业务场景/2024.01.04/基于同城两中心的架构设计0 10 20 3一主两备架构ETCD混合部署适用于有容灾需求的业务/2024.01.04/基于两地三中心的高可用架构设计0 10 20 3两地三中心的方案在同城双中心的基础上,增加一个异地灾备中心异地Stand
2、by节点采用异步复制适用于有异地应用部署需求PART 02数据库整体性能慢分析/2024.01.04/数据库整体性能慢分析数据库整体性能慢,常见的原因有以下几种:1业务层面系统内核参数配置不合理数据库参数配置不合理35246系统资源不足并发问题慢SQLPART 03SQL优化/2024.01.04/SQL优化方法/2024.01.04/SQL优化案例举例:标量子查询解决方案:改成外连接在表数据不大时,一般并不会有什么影响,但当数据量较大时,往往会对性能造成巨大影响。postgres=#explain analyze select t1.id,(select t2.num from t2 whe
3、re t2.id=t1.id)as num from t1;QUERY PLAN -Seq Scan on t1 (cost=0.00.18515489.00 rows=1000000 width=36)(actual time=0.685.127992.907 rows=1000000 loops=1)SubPlan 1 -Seq Scan on t2 (cost=0.00.18.50 rows=1 width=11)(actual time=0.122.0.122 rows=0 loops=1000000)Filter:(id=t1.id)Rows Removed by Filter:10
4、00 Planning Time:2.558 ms Execution Time:128286.385 ms(7 rows)postgres=#explain analyze select t1.id,t2.num from t1 left join t2 on(t2.id=t1.id);QUERY PLAN -Hash Left Join (cost=28.50.19277.50 rows=1000000 width=15)(actual time=1.948.659.592 rows=1000000 loops=1)Hash Cond:(t1.id=t2.id)-Seq Scan on t
5、1 (cost=0.00.15489.00 rows=1000000 width=4)(actual time=0.026.221.160 rows=1000000 loops=1)-Hash (cost=16.00.16.00 rows=1000 width=15)(actual time=1.513.1.514 rows=1000 loops=1)Buckets:1024 Batches:1 Memory Usage:56kB -Seq Scan on t2 (cost=0.00.16.00 rows=1000 width=15)(actual time=0.044.0.423 rows=
6、1000 loops=1)Planning Time:2.462 ms Execution Time:753.455 ms(8 rows)PART 04常用扩展插件/2024.01.04/常用扩展插件时序数据库执行计划表 膨 胀 清 理慢SQL语句获取跨库操作模糊查询010604030205PART 05架构优化/2024.01.04/架构优化分布式citus读写分离连接池VIP切换监控系统缓存haproxy+patronipgbouncerkeepalivedzabbix、