MySQL与PostgreSQL:一场深度比较

发表时间: 2020-06-16 19:54

前言

PostgreSQL不是Oracle公司的,这是相对于MySQL最大的优势,没有之一!

图片来源于网络

MySQL是目前最受欢迎的开源数据库,PostgreSQL则是我认为最先进的开源数据库。MySQL是C/C++混合开发,PostgreSQL则是完全的C语言开发,这是在技术方面的差异,接下来我详细列一下PostgreSQL相对于MySQL优势,当然其实这些也都能找到,我就列举几个比较关键的优势。

图片来源于网络

对比

1.稳定性

PostgreSQL稳定性非常强,InnoDB即使是在断电这种场景下,PostgreSQL也是相当稳定的,这个MySQL用户应该是深有体会的,很多估计都经历过服务器级别的数据丢失。

图片来源于网络

2.储引擎

MySQL是单存储引擎,PostgreSQL是多存储引擎,包括InnoDB、MyISAM等。

图片来源于网络

3.操作

删除临时表的时候,PostgreSQL语句没有TEMP、TEMPORARY关键字,DROP TABLE通过数据库连接的排列被删除。MySQL支持TEMP、TEMPORARY关键字,DROP TABLE语句只允许删除临时表,要手动删除。PostgreSQL支持CASCADE选择删除表的依赖对象,PostgreSQL的TRUNCATE TABLE支持功能更多。MySQL TRUNCATE TABLE不支持CASCADE食物安全,数据删除之后就没办法回滚了。

图片来源于网络

4.数据类型

PostgreSQL支持多种高级数据类型,比如array,用户也可以定义类型,MySQL只支持标准类型。PostgreSQL支持布尔型,支持IP地址数据类型,支持常量和函数调用。PostgreSQL支持JSON和其他NoSQL功能,本机支持XML,允许索引JSON数据,MySQL支持JSON,不过不支持其他的NoSQL功能。PostgreSQL的对象统计功能也很强,这一点MySQL也有差距。

图片来源于网络

5.线程

PostgreSQL是多进程、MySQL是多线程。PostgreSQL支持大多数命令类型上触发的触发器。MySQL是异步复制,PostgreSQL支持同步、异步、半同步复制。PostgreSQL要求所有数据必须完全满足需求,只要出一个错误整个数据入库过程都要失败,不过MySQL没这样的问题。

图片来源于网络

小结

在文章开头说到的,也是我认为最大的优势,MySQL诞生于商业公司,现在是让人生厌的Oracle控制,尽管MySQL现在依然是开源免费的,可是在Oracle手里总是会让人担心。Java在oracle手机搞了些啥大家应该都知道吧,现在Oracle动不动出来恶心恶心大家,反正甲骨文是个不靠谱的公司,随时想要搞点事情。

PostgreSQL则是诞生于加州伯克利,伯克利还是对计算机技术有过突出贡献的高校的,PostgreSQL、FreeBSD都是非常有代表性的,这个不会存在像Oracle那么恶心,所以这个也是一个极大的优势。

图片来源于网络

PS:喜欢的同学可以关注我,一起学习,一起加油!