超过四分之一个世纪以来,人们一直在讨论“MySQL或PostgreSQL,哪个更好?”——没有解决。当人们问我哪个更好,我必须问他们想做的事情,他们想怎么做。

我将解释使用一个不恰当的类比:

什么类型的车是最好的吗?这取决于您的需要。如果你想走得快,一个顶级燃料彷徨会花掉你接近一百万美元你买底盘的时候,备用引擎,工具,和运输。这是一辆车,一次四分之一英里。如果你想快,它将超过300英里每小时大约1000英尺。但是你不能平行泊车它或使用它跑到商店对于一些薯片和啤酒。

小型经济型轿车更适合存储运行和操作在彷徨的成本的一小部分。你不需要穿一套耐火的推动或重新打包降落伞每次旅行后你想要停止。在大多数情况下,这是对大多数人来说足够的汽车。如果你是一个拖动赛车,那辆车不会有竞争力。

MySQL和PostgreSQL的基础很好

从一个高度,一个关系数据库管理系统是很像其他关系数据库管理系统。选择MySQL或PostgreSQL,你可以快乐,充实和令人满意的生活充满了快乐。存储数据均超过充分,将至少百分之八十的你想做轻松。

然而,如果你有一定的数据处理需求,预算要求,支持人员技术水平的限制,或基础设施问题,那么你需要有点挑剔。

MySQL批评多年来对数据做愚蠢的事情比如允许坏日程表日期,没有警告删除数据,其他用户学会了避免的特质。这些问题已经纠正,但旧的名声生活在互联网上和批评家的记忆。它不遵循SQL标准紧密的其他数据库,和一些有用的功能,比如合并()人失踪。

PostgreSQL享有声誉的开源数据库最接近SQL标准,但可能不是配不上你。当你看PostgreSQL的多版本并发控制(MVCC)设计使用和比较其他数据库的设计,看起来混乱。处理死元组可以棘手但大大提高自动吸尘,只要自动化流程运行。坦白说,指数膨胀看起来应该是固定的年前。

都是完美的,每一种都有其过失,必须尊敬。稍后将介绍这些,但首先,以诚实的方式,你应该问问你自己:“我需要在数据库中什么?”

决定MySQL或PostgreSQL更好的适合你的需要

今天绝大多数的数据库正在使用不接近使用他们所有的能力。大部分工作是CRUD(创建、读取(选择)、Update和Delete查询——这可能永远不会划伤表面的高级特性数据库中找到。这两个数据库被认为是在这里做这种类型的工作非常好。

如果你需要一个而不是另一功能,如JSON_TABLE()在MySQL或PostgreSQL MERGE(),那么你的选择了,也许吧。JSON_TABLE()可能会让它在2024年PG 17从PG在最后一刻被删除后15。或者如果你处理JSON格式的数据,你有两个选择在PostgreSQL JSON或JSONB怪癖,MySQL有一个JSON数据类型。

问题是这样的:要么是数据库配不上你的需求吗?而这些:有你所需要的功能吗?分析窗口函数是伟大的,但你要使用的东西吗?MySQL和PostgreSQL窗口函数,但PostgreSQL更精致的产品。都有不同的方式将数据复制到其他服务器,但是一种特殊的方法的实现细节可能是不可接受的。严格的您的需求越多,就越容易识别你的选择。

如果此时你意识到你可能使用数据库,至少在某些抽象的理论方法,然后我们应该使下一大步——数据库的护理和喂养。

护理和喂养——数据库更容易管理?

数据库软件的初学走路的孩子的世界。而其他产品可以安装和忽略没有担心,数据库需要关注,持续的关注,很多。忽略您的数据库可能是灾难性的。

MySQL是容易照顾和管理在大多数情况下。MySQL分布,像Percona,一站式服务。雷竞技下载官网服务器、客户端、连接器等,通常是在一个地方。”

PostgreSQL,它可以很难得到所有必需的组件,因为你可能需要访问一些网站。有几个选项连接领取,负载平衡器,从各种复制包。安装扩展服务器是很容易的,但是,新的扩展服务器与其他地方工作吗?在这种情况下,你要做的测试,而MySQL测试它的组件作为一个整体。

PostgreSQL受益于很多工程在过去的几年中,这有助于让它执行开销的任务变得更加容易。MySQL有自动化的大部分的开销的任务所以你不需要担心。例如,在PostgreSQL,过时的副本行表中必须单独用吸尘器吸尘时避免膨胀InnoDB在MySQL中自动处理这种。比PostgreSQL仅使MySQL更容易管理。

有不同的连接到服务器提交一个查询。MySQL使用一个线程池,这是更少的工作比PostgreSQL服务器需要叉过程使连接。这是一个更高的服务器上的负载,但通过使用连接池可以纠正。

拥有一个数据库备份是必不可少的一部分。两个数据库有很多备份工具,再次需要你做出另一个选择。在MySQL领域,Percona Xtr雷竞技下载官网aBackup是最好的工具,我不只是说Percona员工,但他一直使用该产品。

PostgreSQL有很多选择,但是没有一个产品是头和肩膀上休息。如果你的数据库实例是在云中,那么你可以阅读您的云供应商的提供的特性集。但我建议你备份的副本备用或off-cloud,不管你的选择。

我曾经是认证经理MySQL AB (Sun Microsystems和Oracle),经常经常招聘经理告诉我这是很难找到合格的MySQL dba。他们说这是不可能找到合格的PostgreSQL dba。如果你和你的员工有经验和技能的一个数据库,那么你可能会在这个方向倾斜你的标准

MySQL的InnoDB集群是最好的经过慎重考虑和最容易实现的复制架构。PostgreSQL玩沙司,作为其替代不简单实现。做逻辑复制,但甲骨文的产品更完美。

PostgreSQL是一个丰富的环境和更多的数据类型和运营商,这是接近SQL标准的实现。我喜欢MERGE()函数,因为我花了我职业生涯的一部分在收银机事务日志的处理这个函数时机。这可能看起来像一个微不足道的东西除非你处理类似的数据,然后它就变成了主要的重要性。PostgreSQL的几乎令人尴尬的数量指数类型和能力指数只在一列一些值。

MySQL和PostgreSQL的社区

MySQL和PostgreSQL都大,繁荣的社区。有聚会、会议、邮件列表、松弛的渠道,和大量的教程。一个很大的区别在于,PostgreSQL几乎由贡献者MySQL时使用邮件列表主要是由甲骨文的MySQL工程师。差异也显著,甲骨文决定了上游MySQL的未来,而PostgreSQL是厂商中立的。

在这两种情况下,几百个人工作在主服务器代码。在开发的主要区别是,PostgreSQL的新功能是开放的观察(如果你在正确的邮件列表)尽管甲骨文经常提供很少或根本没有注意到一些新的东西。

结论:我选择PostgreSQL或MySQL吗?

现在,MySQL和PostgreSQL数据库都是不错的选择。MySQL是容易实现和运行,但可能缺乏所需要的特性。PostgreSQL功能丰富,但需要更多的配置和操作。

另一个选择是Percona MySQ雷竞技下载官网L软件,企业特性,比如数据姥,静态加密,RocksDB和一种改进的连接池。软件也是免费的。雷竞技下载官网Percona PostgreSQL也是一个高质量的软件提供已有许多最流行的扩展,使其更容易在生产运行PostgreSQL和关键任务环境。

raybetapp2下载

raybet52

订阅
通知的
客人

0评论
内联反馈
查看所有评论