首页 » 网站推广 » phpploxy技巧_传统行业去O上云为什么选择PostgreSQL更换ORACLE

phpploxy技巧_传统行业去O上云为什么选择PostgreSQL更换ORACLE

访客 2024-11-21 0

扫一扫用手机浏览

文章目录 [+]

“去O”,是近些年来一贯很火的一个话题。
作为传统大型商业数据库的范例代表Oracle,在海内浩瀚领域利用非常广泛。
在金融、电信、交通、医疗、制造业、能源等诸多领域均有大量利用,险些覆盖了国计民生的方方面面。
阿里作为始作俑者,最早实现了”去IOE”(去掉IBM的小型机、Oracle数据库、EMC存储设备) ,并且取得了很好的效果,要知道一台IBM小型机500万,两台小型机所需的存储300万,Oracle一年的基本质保几十万等等……一笔笔巨额账单让无数企业要么头疼不已,要么望洋兴叹。

拿什么更换

更换ORACLE,便是用开源数据库进行更换,开源一定是一个大趋势,可以快速构建生态,培养群体,收割大客户,闭源始终是一个黑盒,就像瞎子走夜路暗中摸索一样。
开源的数据库代表包括如日方升各种大肆宣扬的TiDB、腾讯的TBase、华为的openGuass等,阿里也深谙之道,也将PolarDB、Oceanbase开源(最早曾经开源过一阵子,后来又闭源了)。
现阶段的热词是什么?Mpp、Lake-house湖仓一体化、超领悟等,大有不谈分布式数据库就有点Out的觉得了,通过分布式办理集中式数据库存在的水平扩展与容灾高可用两个问题,不管规模、本钱以及合理性,统统上分布式数据库。
但分布式对付绝大多数人来说,除了要实现的那一套繁芜的CAP、Base理论,再加上一系列节点的通过高速内联网络和一系列的同等性协议进行交互通信,机制繁芜,看似美好,实则还有很多的路要走。
笔者有幸也有过一阵子的分布式数据库履历,个中利弊自己还是十分清楚的。
那么对付传统事务性数据库的代表,最范例的便是MySQL和PostgreSQL。

phpploxy技巧_传统行业去O上云为什么选择PostgreSQL更换ORACLE

MySQL紧张用户群体集中在互联网公司,是开源数据库领域市场霸占率最高的。
2009年,随着SUN公司被Oracle以76亿美元收购(SUN公司在此之前曾以10亿美金收购MySQL AB公司),自此MySQL也被Oracel公司纳入自己麾下。
而PostgreSQL,起源于伯克利大学,正宗学院派,代码 (ANSI C) 严谨,注释详细,可读性强,拥有30余年的历史,并且荣获2017、2018、2020年的“环球年度数据库”冠军称号。
MySQL和PostgreSQL二者基本瓜分了开源事务型数据库的市场

phpploxy技巧_传统行业去O上云为什么选择PostgreSQL更换ORACLE
(图片来自网络侵删)

但是在MySQL被Oracle收购往后,越来越多的人对付MySQL的前景表示了担忧,对付开源的MySQL,或多或少对付Oracle自家的数据库产品产生冲击,这个开源免费的MySQL 对付Oracle更多的是包袱而不是资产。
比如淘宝就从Oracle转成了MySQL,一些大型互联网公司也在实行去IOE,甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采取分支的办法来避开这个风险,如Percona 和 MariaDB,但是相称于分开了主干分支,自给自足。

PostgreSQL就不一样了,如果说99%的开源数据库都是被商业公司掌握的,那么PostgreSQL便是那 1%,PostgreSQL的协议是类BSD 容许,可以随意分发、闭源或开源,可以被用于商业目的或其他场合,也便是说你不打着PostgreSQL的名号出去招摇撞骗,拉个双眼皮敷个面膜拿出去卖,没人管你的。

PostgreSQL是一个纯社区的数据库,基本上每3个月推出一个补丁版本,这意味着已知的Bug很快会被修复,有需求也会及时得到相应。
虽然看似发版很快,但是关注commiters的谈论邮件可以创造,一个功能每每须要谈论许久,经由反反复复的验证之后,才会上,是十分严谨的。
其余commiters遍布全国,由全天下超过1000名贡献者所掩护。
它供应了单个完全功能的版本,官方统一开拓,统一掩护,社区版有所有功能,还有来自于独立厂商的商业支持,比如EDB (enterprisedb)、postgrespro等,不像MySQL有标准版、企业版、经典版、社区版、开拓版、web版等,MySQL由于历史缘故原由,分裂为三个分支版本,MariaDB分支、Percona分支 、Oracle官方分支,发展到目前为止各个分支基本相互不兼容Oracle官方分支还有版本之分,分为标准版、企业版、经典版、社区版。

为什么去"O"得用PostgreSQL?

Oracle和PostgreSQL在架构上是十分附近的,包括进程架构、共享缓冲池等。
从功能上说,PostgreSQL可以与Oracle数据库媲美。
Oracle数据库是目前功能最强大的商业数据库,PostgreSQL则是功能最强大的开源数据库。
从Oracle转型到PostgreSQL比MySQL转型到PostgreSQL随意马虎太多了,笔者就多次见到从MySQL转型过来的,在PostgreSQL下面建了多个database然后又吐槽居然不能跨库访问的,还得用什么dblink,由于PostgreSQL里面的schema的观点对应MySQL的database。

其余PostgreSQL是严格的学院派数据库,支持严格的ACID,稳如老狗,一个打十个。

MySQL更加适宜业务逻辑相对大略、数据可靠性哀求较低的互联网场景(比如google、facebook、alibaba),基本上MySQL能做的PostgreSQL都能做。

PostgreSQL的优点有哪些支持SQL2016大部分特性,至少实现了SQL2011标准中哀求的179项紧张功能中的160项,这险些超过了任何其他数据库引擎。
支持多种措辞,C、C++、Perl、Python、Java、Tcl以及PHP等功能丰富,利用内核代码中的Hook,可以在不修正数据库内核代码的情形下,自主添加任意功能,如杀手锏GIS、pg_hint_plan等等社区生动,生态友好,国内外基于PostgreSQL有很多精良的产品,这些商业主体会集成和发扬,并反哺社区,让PostgreSQL更好用,如pglogical,小于v10的版本得用这个插件实现逻辑复制,后来v10引入的原生逻辑复制基本年夜将这个插件引入了内核,只不过pglogical有更强大的复制冲突处理能力。
FDW机制可以让你可以在同一个PostgreSQL中像操作本地表一样访问其他数据源,如Hadoop、MySQL、Oracle、MongoDB、ES等,且不会占用PostgreSQL的过多资源。
与PostgreSQl合营的开源软件很多,有很多分布式集群软件,如pgpool、pgcluster、slony、plploxy、citus等等,很随意马虎做读写分离、负载均衡、数据水平拆分等方案全栈数据库,流式处理Pipelinedb、时序数据库TimescaleDB、空间数据PostGIS、分布式citus、pgxl、yugabyte、图数据ADG、NoSQL Json、JsonB、Hstore等协议友好,采取类BSD协议,是无数国产数据库厂商的衣食父母,基于PostgreSQL开拓的国产数据库太多了如人大金仓、瀚高、优炫等等,为什么?协议友好啊,前阵子央采(中心国家机关2021年数据库软件协议供货采购项目征集公告发布)数据库,可以看一下,各处都是PostgreSQL的影子完备开源,注释清晰,代码质量高,对付不懂coding的,只要有一点C措辞根本,都可以很随意马虎看懂干系源码,比如如下的关于异步IO effective_io_concurrency 的源代码,Issue prefetch requests for the number of buffers indicated by prefetch_count,直接看个注释就大概知道了意思。

10.PostgreSQL不仅仅是SQL数据库,还能高效处理图构造, 轻松实现 "朋友的朋友的朋友",任意字段组合查询 - ERP、电商、网站、手机APP等业务场景 (gin, bloom索引)、网格化、矢量化舆图 - 地理类运用、LBS社交、导航等业务场景 (杀手锏PostGIS)、相似内容搜索、去重 - 互联网、数据公司、搜索引擎等业务场景、用户群体搜索、根据标签圈人 - 电商、广告投放 等业务场景、高并发更新少量记录 - 电商、票务系统 等业务场景 (咨询锁),详见德哥的 《数据库选型十八摸 之 PostgreSQL - 致 架构师、开拓者》

11.每年一个大版本发布,大版本发布的第二年就可以上生产环境,每个版本基本都会引入重量级特性,如9.6引入了并行,10引入了逻辑复制和声明式分区,11引入了JIT即时编译和procedure等等。
MySQL的大版本发布一样平常是2年~3年

12.强大的并行能力,MySQL 8.0.14才引入了并行,并且还是个Demo,只能实现并行的扫描,并不能并行的操持,PostgreSQL9.6就引入了并行,前阵子已经发布到了v14,支持多种并行扫描,如并行query、seqscan、nestloop join、aggregate、merje join、hash join等等,充分榨干你的做事器资源。

13.PostgreSQL的主备复制属于物理复制,相对付MySQL基于binlog的逻辑复制,数据的同等性更加可靠,复制性能更高,对主机性能的影响也更小。

PostgreSQL的缺陷有哪些

当然,数据库都是有缺点的,大略罗列了几点,不过这些问题对付履历尚浅的人来说可能比较头疼,资深一点的话就也不是太大问题。
有些实在可以叫做 “特性” 而非缺陷,只不过被无限放大变成了某些人嘴中的 "缺陷"

32位的事务ID,对付写入负载高的库,会常常面临事务ID回卷的问题,openGuass很棒改成了64位,妈妈再也不用担心事务号了短缺Hints功能,须要引入pg_hint_plans插件,并且开拓团队多年来一贯谢绝支持Planner hints,可能也出于安全考虑吧(强行阐明一波)没有原生的进程池,对付大量短连接的场景,须要借助外部工具如pgbouncer、pgagroal等MVCC的实现办法,必须要引入饱受诟病的vacuum,履历不敷还会常常导致表膨胀没有原天生熟的TDE和压缩方案(Toast须要超过1/4 block才行,可以通过toast_tuple_target参数修正),不过最新的v14引入了lz4压缩,相信后面会有越来越多的压缩算法

6.复制槽不支持Failover,意味着如果发生了Failover,消费信息会丢失,对付严格的金融场景,这个可能比较头疼,这也是目前限定逻辑复制发展的一大主要成分

7.权限设计有点过于繁芜化了,包括角色、用户(这二者基本没有差异,除了一个登录权限),其余还搞了一个schema,和SQL Server比较像,database -> schema - >object,如果你有database的权限而没有schema的权限,一样是弗成的,对付转型过来的可能很不适应。
对付MySQL,模式与数据库同义。
乃至可以用create schema来创建数据库,效果和create database一样。
对付Oracle,schema与数据库用户密切干系

如何高效学习PostgreSQL

那么如何高效学习PostgreSQL呢?对付刚入门的小白,建议先从书本学起,看书,有些好书值得回味2遍以上,这里分享一下个人的看书进程

PostgreSQL的发展势头是很剧烈的,海内包括安然、去哪儿、斯凯网络等PG大户,国外如日本电报电话公司、Skype、Instagram、Gitlab,主流的云做事供应商如亚马逊、阿里云、腾讯云、华为云也都供应了PostgreSQL的云数据库做事。
其余还有国家政策扶持啊!

总之2021学什么?不用我多说了吧。

相关文章

招商蛇口中国房地产龙头企业,未来可期

招商蛇口(股票代码:001979),作为中国房地产企业的领军企业,自成立以来始终秉持“以人为本,追求卓越”的经营理念,致力于打造高...

网站推广 2025-02-18 阅读1 评论0