openstack性能優化
MySQL與PostGreSQL的區別
一.PostgreSQL相對於MySQL的優勢
1、在SQL的標准實現上要比MySQL完善,而且功能實現比較嚴謹;
2、存儲過程的功能支持要比MySQL好,具備本地緩存執行計划的能力;
3、對表連接支持較完整,優化器的功能較完整,支持的索引類型很多,復雜查詢能力較強;
4、PG主表采用堆表存放,MySQL采用索引組織表,能夠支持比MySQL更大的數據量。
5、PG的主備復制屬於物理復制,相對於MySQL基於binlog的邏輯復制,數據的一致性更加可靠,復制性能更高,對主機性能的影響也更小。
6、MySQL的存儲引擎插件化機制,存在鎖機制復雜影響並發的問題,而PG不存在。
二、MySQL相對於PG的優勢:
1、innodb的基於回滾段實現的MVCC機制,相對PG新老數據一起存放的基於XID的MVCC機制,是占優的。因此MySQL的速度是高於PG的;
2、MySQL采用索引組織表,這種存儲方式非常適合基於主鍵匹配的查詢、刪改操作,但是對表結構設計存在約束;
3、MySQL的優化器較簡單,系統表、運算符、數據類型的實現都很精簡,非常適合簡單的查詢操作;
4、MySQL分區表的實現要優於PG的基於繼承表的分區實現,主要體現在分區個數達到上千上萬后的處理性能差異較大。
總結:
PG具備更高的可靠性,對數據一致性完整性的支持高於MySQL,因此PG更加適合嚴格的企業應用場景(比如金融、電信、ERP、CRM);而MySQL查詢速度較快,更加適合業務邏輯相對簡單、數據可靠性要求較低的互聯網場景(比如google、facebook、alibaba)