MySQL和Postgresql的區別

一.PostgreSQL相對於MySQL的優點數據庫

一、在SQL的標準實現上要比MySQL完善,並且功能實現比較嚴謹;
二、存儲過程的功能支持要比MySQL好,具有本地緩存執行計劃的能力;
三、對錶鏈接支持較完整,優化器的功能較完整,支持的索引類型不少,複雜查詢能力較強;
四、PG主表採用堆表存放,MySQL採用索引組織表,可以支持比MySQL更大的數據量。
五、PG的主備複製屬於物理複製,相對於MySQL基於binlog的邏輯複製,數據的一致性更加可靠,複製性能更高,對主機性能的影響也更小。
六、MySQL的存儲引擎插件化機制,存在鎖機制複雜影響併發的問題,而PG不存在。緩存

2、MySQL相對於PG的優點:架構

一、innodb的基於回滾段實現的MVCC機制,相對PG新老數據一塊兒存放的基於XID的MVCC機制,是佔優的。新老數據一塊兒存放,須要定時觸 發VACUUM,會帶來多餘的IO和數據庫對象加鎖開銷,引發數據庫總體的併發能力降低。並且VACUUM清理不及時,還可能會引起數據膨脹; 併發

二、MySQL採用索引組織表,這種存儲方式很是適合基於主鍵匹配的查詢、刪改操做,可是對錶結構設計存在約束;oracle

三、MySQL的優化器較簡單,系統表、運算符、數據類型的實現都很精簡,很是適合簡單的查詢操做;性能

四、MySQL分區表的實現要優於PG的基於繼承表的分區實現,主要體如今分區個數達到上千上萬後的處理性能差別較大。優化

五、MySQL的存儲引擎插件化機制,使得它的應用場景更加普遍,好比除了innodb適合事務處理場景外,myisam適合靜態數據的查詢場景。google

3、整體上來講,開源數據庫都不是很完善,商業數據庫oracle在架構和功能方面都仍是完善不少的。從應用場景來講,PG更加適合嚴格的企業應用場景(好比金融、電信、ERP、CRM),而MySQL更加適合業務邏輯相對簡單、數據可靠性要求較低的互聯網場景(好比google、facebook、alibaba)。插件

相關文章
相關標籤/搜索