导读:不久前,云和恩墨大讲堂分享了一期名为《带你走进PostgreSQL的世界》的直播,本文是线上分享评论区的一些提问和老师的解答,有遗漏的可以在评论区进行补充。
OLTP场景,复杂SQL场景,SQL层数据分析(GreenPlum)、GIS需求场景,Oracle迁移场景,对接外部多数据源场景等,昨天第三部分有介绍实际使用过的场景。
从设计理念来说PG与Oracle类似,例如复杂SQL查询,PITR等从部署角度,Oracle比较难以做到快速部署,PG只有几十M,更容易轻量级自动集成部署。
从功能角度,Oracle大而全,PG原生功能简洁,扩展功能丰富从SQL标准支持角度,PG符合度更高,例如json及json path当然PG功能特性的自动化封装集成也是需要我们去完善。
PITR基于时间点、事务、还原点都支持,备份工具有pg_rman支持单机操作、pg_probackup支持单机或远程实例,也支持恢复到db级别。
需要软件层面的支持。
与地址坐标位置相关同时想再数据库层做查询计算,可比如公交行业车辆轨迹分析,智能监控等,我只搭过环境,没实践使用过,可以参考POSTGIS官网,有参考案例。
PG原生只支持函数的概念,新版本也支持存储过程以及函数里手动commit/rollback操作,功能跟oracle的存储过程一样很强大,而且支持不同的编程接口,C、Java、Python、Perl等。
非常多,本人之前从事的公交行业IC卡收费系统大量复杂的业务逻辑如售卡充值挂失等都是基于PG函数实现。
本身PG与Oracle的设计理念相似,语法也很类似,切换比较平滑,部分Oracle特定语法需要改写。
《PostgreSQL修炼之道:从小工到专家》《PostgreSQL服务器编程》《PostgreSQL实战》
我接触从事过的行业有公交、银行体系,主要应用于企业自研产品,另外PG历届大会及网上可以查,国内各行各业都有实践应用。
MySQL本人没有生产实践应用,平安在分享选择PG而非MySQL替代Oracle案例时介绍,对复杂SQL的支持、过程性语言、非关系型数据结构的支持等因素导致最终选择PG替代Oracle。
PostgreSQL是一个数据库编程平台,接口开放,类似乐高积木,相关的配套工具不太完善,需要用户自己集成。Oracle是成熟完善的商业产品,功能大而全,不够轻量级。MySQL本人没什么实践。
原生有集成备份、主备切换接口,WAL日志也开放接口,有基于pgpool做集群,实现连接池、负载均衡及高可用,也有基于keepalived+VIP方案、repmgr方案、patroni方案等,需要自己集成搭建。
目前实践都是基于PG12,与10相比使用pgbench测试性能没有太大提升,但并行以及分区表性能有提升,12恢复及备库触发方式等有调整,配置使用上有一些变化。
求稳建议10,且各个平台安装包EDB都提供小版本更新包,11以上不提供支持。
有基础的,我觉得2天能实践入门,能干活,深入的话需要持续学习。
有做过公交行业的Oracle迁移到PG,现在也在做这方面的工作。
一般来说入门容易,精通难。
可能有节约成本的因素,自研可控因素,就如IT公司无论大小都有软件部门。
本人参与实践落地的公交项目(准金融业务系统),从13年上线运行,15年底切换PG新版本,现在稳定运行,国内很多同行也有介绍不同行业不同的大型业务系统均有实践。
超过100+,包括阿里、腾讯等。
一是操作系统级别的参数调优,二是postgresql.conf里的参数调优,三是应用调优,查询索引优化等,后面有机会整理分享。
PG里有适合GIS空间类型的索引,能提高查询性能。
可能是主库的WAL会被撑满吧,如果主库配置了复制槽,备库失联会导致主库被撑满的情况,即使你限制设置了WAL空间的大小。
如果仔细了解下,现在PG市场趋势一直在增长。
生产系统使用主流版本9和10,推荐10做生产,学习建议学12及新版本
Pgpool-II周围有不少人使用,稳定性可以,还有连接池、负载均衡等功能。
可以基于fdw方案做。
1. 人人都能看懂的 6 种限流实现方案!
2. 一个空格引发的“惨案“
3. 大型网站架构演化发展历程
4. Java语言“坑爹”排行榜TOP 10
5. 我是一个Java类(附带精彩吐槽)
6. 看完这篇Redis缓存三大问题,保你能和面试官互扯
7. 程序员必知的 89 个操作系统核心概念
8. 深入理解 MySQL:快速学会分析SQL执行效率
9. API 接口设计规范
10. Spring Boot 面试,一个问题就干趴下了!
扫码二维码关注我
·end·
—如果本文有帮助,请分享到朋友圈吧—
我们一起愉快的玩耍!
你点的每个赞,我都认真当成了喜欢