PostgreSQL入门的经典28问28答

    技术2024-12-10  17

    导读:不久前,云和恩墨大讲堂分享了一期名为《带你走进PostgreSQL的世界》的直播,本文是线上分享评论区的一些提问和老师的解答,有遗漏的可以在评论区进行补充。

    1. 什么样的场景,推荐PG?

    OLTP场景,复杂SQL场景,SQL层数据分析(GreenPlum)、GIS需求场景,Oracle迁移场景,对接外部多数据源场景等,昨天第三部分有介绍实际使用过的场景。

    2. 讲下Oracle与PG的区别?

    从设计理念来说PG与Oracle类似,例如复杂SQL查询,PITR等从部署角度,Oracle比较难以做到快速部署,PG只有几十M,更容易轻量级自动集成部署。

    从功能角度,Oracle大而全,PG原生功能简洁,扩展功能丰富从SQL标准支持角度,PG符合度更高,例如json及json path当然PG功能特性的自动化封装集成也是需要我们去完善。

    3. PG有没有像Oracle RMAN那样的联机数据热备?能支持任意时间点的恢复吗?

    PITR基于时间点、事务、还原点都支持,备份工具有pg_rman支持单机操作、pg_probackup支持单机或远程实例,也支持恢复到db级别。

    4. PG也支持类似的RAC共享存储的吗?

    需要软件层面的支持。

    5. POSTGIS的使用场景及如何使用?

    与地址坐标位置相关同时想再数据库层做查询计算,可比如公交行业车辆轨迹分析,智能监控等,我只搭过环境,没实践使用过,可以参考POSTGIS官网,有参考案例。

    6. PG里的存储过程强大吗?跟Oracle里差别大吗?

    PG原生只支持函数的概念,新版本也支持存储过程以及函数里手动commit/rollback操作,功能跟oracle的存储过程一样很强大,而且支持不同的编程接口,C、Java、Python、Perl等。

    7. 有没有在PG里写函数和存储过程实现业务逻辑的。

    非常多,本人之前从事的公交行业IC卡收费系统大量复杂的业务逻辑如售卡充值挂失等都是基于PG函数实现。

    8. Oracle转PG,存储过程是不是要改写 ?

    本身PG与Oracle的设计理念相似,语法也很类似,切换比较平滑,部分Oracle特定语法需要改写。

    9.入门书籍有推荐的吗?

    《PostgreSQL修炼之道:从小工到专家》《PostgreSQL服务器编程》《PostgreSQL实战》

    10. PG主要应用在哪些地方?

    我接触从事过的行业有公交、银行体系,主要应用于企业自研产品,另外PG历届大会及网上可以查,国内各行各业都有实践应用。

    11. PG和MySQL的区别?

    MySQL本人没有生产实践应用,平安在分享选择PG而非MySQL替代Oracle案例时介绍,对复杂SQL的支持、过程性语言、非关系型数据结构的支持等因素导致最终选择PG替代Oracle。

    12. PG和MySQL,Oracle的区别,各自的优缺点是什么?

    PostgreSQL是一个数据库编程平台,接口开放,类似乐高积木,相关的配套工具不太完善,需要用户自己集成。Oracle是成熟完善的商业产品,功能大而全,不够轻量级。MySQL本人没什么实践。

    13. PG有集群环境吗?

    原生有集成备份、主备切换接口,WAL日志也开放接口,有基于pgpool做集群,实现连接池、负载均衡及高可用,也有基于keepalived+VIP方案、repmgr方案、patroni方案等,需要自己集成搭建。

    14. PG12试用过吗?与PG10在使用上有没有明显的性能提升?

    目前实践都是基于PG12,与10相比使用pgbench测试性能没有太大提升,但并行以及分区表性能有提升,12恢复及备库触发方式等有调整,配置使用上有一些变化。

    15. 生产环境,目前建议用pg哪个版本。

    求稳建议10,且各个平台安装包EDB都提供小版本更新包,11以上不提供支持。

    16. 快速入门,需要学多久时间

    有基础的,我觉得2天能实践入门,能干活,深入的话需要持续学习。

    17. 有Oracle迁移PG经验么?

    有做过公交行业的Oracle迁移到PG,现在也在做这方面的工作。

    18. 从入门到精通要多久?

    一般来说入门容易,精通难。

    19. 为什么现在很多企业选择Oracle转PG呀?

    可能有节约成本的因素,自研可控因素,就如IT公司无论大小都有软件部门。

    20. PG数据库,这个可以用于大型业务系统不?

    本人参与实践落地的公交项目(准金融业务系统),从13年上线运行,15年底切换PG新版本,现在稳定运行,国内很多同行也有介绍不同行业不同的大型业务系统均有实践。

    21. PG目前国内的在使用客户多么?

    超过100+,包括阿里、腾讯等。

    22. 讲一下PG优化吧?

    一是操作系统级别的参数调优,二是postgresql.conf里的参数调优,三是应用调优,查询索引优化等,后面有机会整理分享。

    23. PG读取空间数据,性能如何提高?

    PG里有适合GIS空间类型的索引,能提高查询性能。

    24. PG高可用当中,备库的WAL文件什么时候会被清理?遇到过备库WAL分区被撑满的情况?

    可能是主库的WAL会被撑满吧,如果主库配置了复制槽,备库失联会导致主库被撑满的情况,即使你限制设置了WAL空间的大小。

    25. 感觉目前PG的市场不大,用的人少?

    如果仔细了解下,现在PG市场趋势一直在增长。

    26. PG现在主流版本是那些?推荐学什么版本?

    生产系统使用主流版本9和10,推荐10做生产,学习建议学12及新版本

    27. pgpool怎么样?稳定性如何?

    Pgpool-II周围有不少人使用,稳定性可以,还有连接池、负载均衡等功能。

    28. PG做数据仓库怎么样?

    可以基于fdw方案做。

    1. 人人都能看懂的 6 种限流实现方案!

    2. 一个空格引发的“惨案“

    3. 大型网站架构演化发展历程

    4. Java语言“坑爹”排行榜TOP 10

    5. 我是一个Java类(附带精彩吐槽)

    6. 看完这篇Redis缓存三大问题,保你能和面试官互扯

    7. 程序员必知的 89 个操作系统核心概念

    8. 深入理解 MySQL:快速学会分析SQL执行效率

    9. API 接口设计规范

    10. Spring Boot 面试,一个问题就干趴下了!

    扫码二维码关注我

    ·end·

    —如果本文有帮助,请分享到朋友圈吧—

    我们一起愉快的玩耍!

    你点的每个赞,我都认真当成了喜欢

    Processed: 0.012, SQL: 9