MySQL Vs PostgreSQL
一 历史
2008年,Sun(太阳微系统)正式收购MySQL。
2009年,甲骨文公司宣布收购Sun。
自从MySQL被甲骨文收购后,被世人诟病不少。收购之初,Apple就宣布从MySQL转入到PostgreSQL. 2003年 维基百科,google等其他大型企业也纷纷宣布弃MySQL而选择MariaDB.
PostgreSQL标榜自己是世界上最先进的开源数据库。
PostgreSQL源于加州伯克利大学,研发开始于1982年。1989年发行了版本1。在发布版本6.0后,来自世界各地的数据库开发者和志愿者,通过Internet协作起来,维护着这套软件。自从版本6.0之后,出现了很多后续发行,在系统中也出现了很多改进;在2005年,发布版本8.0后,PostgreSQL执行于Windows系统。05年一月,开始得到了商业支持。
二、两者的共同优势
这两个产品都属于开放源码的一员,性能和功能都在高速地提高和增强。
三、两者不同的背景
MySQL的背后是一个成熟的商业公司(先后有Sun和Oracle),而PostgreSQL的背后是一个庞大的志愿开发组。这使得MySQL的开发过程更为慎重(最新版本5.6),而PostgreSQL的反应更为迅速(最新版本9.3)。这样的两种背景直接导致了各自固有的优点和缺点。
四、各自优点
MySQL的主要优点 (速度,流行,window,线程,事务)
1、 首先是速度,MySQL通常要比PostgreSQL快得多。MySQL自已也宣称速度是他们追求的主要目标之一,基于这个原因,MySQL在以前的文档中也曾经说过并不准备支持事务和触发器。
2、MySQL比PostgreSQL更流行,流行意味着更多的用户,意味着经受了更多的考验,意味着更好的商业支持。而且MySQL提供了多个不同的社区版、商业版与企业版,而PG只提供了单个完整功能的版本。
3、 与PostgreSQL相比,MySQL更适宜在Windows环境下运行。PostgreSQL在Windows下运 行没有MySQL稳定。
4、MySQL使用了线程,而PostgreSQL使用的是进程。在不同线程之间的环境转换和访问公用的存储区域显然要比在不同的进程之间要快得多。
5、由于MySQL 4.0.2-alpha开始支持事务的概念,因此事务对于MySQL不再成为劣势。相反,因为MySQL保留无事务的表类型。这就为用户提供了更多的选择。
PostgreSQL的主要优点: (协议,规范,可靠,进程,查询)
1、PG遵循的是BSD协议,完全开源免费且不会被任何商业公司控制;而MySQL在Oracle手中,慢慢走向封闭。
2 、 PostgreSQL源代码堪称C语言的规范,易读性比MySQL强很多。
3、可靠性是PostgreSQL的最高优先级。它以坚如磐石的品质和良好的工程化而闻名。PostgreSQL是完全支持ACID特性的,对于数据库访问提供了强大的安全性保证。
4、 PG是多进程的,而My是多线程的。虽然并发不高时,My处理速度快;但是当并发高时,对于现在的多核的单台机器上,My的总体性能不如PG,原因是My的线程无法充分利用CPU的能力。
5、PG有很强大的查询优化器,支持很复杂的查询处理,而My对复杂查询处理较弱,查询优化器不够成熟。
五、MySQL or PG
1、如果你的操作系统是Windows,你应该使用MySQL。
2、如果你的应用对数据的完整性和严肃性要求不高,但是追求处理的高速度。例如是一个论坛和社区,你应该使用MySQL。
3、你的应用是一个严肃的商业应用,对数据完整性要求很高,并且需要开源免费的数据库,你应该使用PostgreSQL。
4、你是一个数据库内核的狂热爱好者,你甚至希望拥有你自己版本的数据库,毫无疑问,你必须使用PostgreSQL,没准下一个PostgreSQL版本中某一个模块的作者就是你。