MySQL聲稱自己是最流行的開源數(shù)據(jù)庫。LAMP中的M指的就是MySQL。構(gòu)建在LAMP上的應(yīng)用都會(huì)使用MySQL,如WordPress、Drupal等大多數(shù)php開源程序。
PostgreSQL標(biāo)榜自己是世界上最先進(jìn)的開源數(shù)據(jù)庫。PostgreSQL是完全由社區(qū)驅(qū)動(dòng)的開源項(xiàng)目。它提供了單個(gè)完整功能的版本,而不像MySQL那樣提供了多個(gè)不同的社區(qū)版、商業(yè)版與企業(yè)版。PostgreSQL基于自由的BSD/MIT許可,組織可以使用、復(fù)制、修改和重新分發(fā)代碼,只需要提供一個(gè)版權(quán)聲明即可。
MySQL是C/C++混合開發(fā),PostgreSQL則是完全的C語言開發(fā),這是在技術(shù)方面的差異
1.穩(wěn)定性
PostgreSQL穩(wěn)定性非常強(qiáng),InnoDB即使是在斷電這種場景下,PostgreSQL也是相當(dāng)穩(wěn)定的,這個(gè)MySQL用戶應(yīng)該是深有體會(huì)的,很多估計(jì)都經(jīng)歷過服務(wù)器級(jí)別的數(shù)據(jù)丟失。
2.儲(chǔ)引擎
MySQL是單存儲(chǔ)引擎,PostgreSQL是多存儲(chǔ)引擎,包括InnoDB、MyISAM等。
3.操作
刪除臨時(shí)表的時(shí)候,PostgreSQL語句沒有TEMP、TEMPORARY關(guān)鍵字,DROP TABLE通過數(shù)據(jù)庫連接的排列被刪除。MySQL支持TEMP、TEMPORARY關(guān)鍵字,DROP TABLE語句只允許刪除臨時(shí)表,要手動(dòng)刪除。PostgreSQL支持CASCADE選擇刪除表的依賴對象,PostgreSQL的TRUNCATE TABLE支持功能更多。MySQL TRUNCATE TABLE不支持CASCADE食物安全,數(shù)據(jù)刪除之后就沒辦法回滾了。
4.數(shù)據(jù)類型
PostgreSQL支持多種高級(jí)數(shù)據(jù)類型,比如array,用戶也可以定義類型,MySQL只支持標(biāo)準(zhǔn)類型。PostgreSQL支持布爾型,支持IP地址數(shù)據(jù)類型,支持常量和函數(shù)調(diào)用。PostgreSQL支持JSON和其他NoSQL功能,本機(jī)支持XML,允許索引JSON數(shù)據(jù),MySQL支持JSON,不過不支持其他的NoSQL功能。PostgreSQL的對象統(tǒng)計(jì)功能也很強(qiáng),這一點(diǎn)MySQL也有差距。
5.線程
PostgreSQL是多進(jìn)程、MySQL是多線程。PostgreSQL支持大多數(shù)命令類型上觸發(fā)的觸發(fā)器。MySQL是異步復(fù)制,PostgreSQL支持同步、異步、半同步復(fù)制。PostgreSQL要求所有數(shù)據(jù)必須完全滿足需求,只要出一個(gè)錯(cuò)誤整個(gè)數(shù)據(jù)入庫過程都要失敗,不過MySQL沒這樣的問題。
最新文章
- 云數(shù)據(jù)庫 TaurusDB與RDS for MySQL的區(qū)別
- PostgreSQL鏡像下載
- 分布式消息服務(wù)Kafka版與分布式消息服務(wù)RocketMQ版的區(qū)別_Kafka與RocketMQ對比_Kafka與RocketMQ差異
- 華為云數(shù)據(jù)庫 RDS對比自建數(shù)據(jù)庫的優(yōu)勢是什么_免費(fèi)試用
- 對象存儲(chǔ)與自建存儲(chǔ)服務(wù)器對比_OBS對象存儲(chǔ)的優(yōu)勢_OBS對象存儲(chǔ)好用的功能
- PostgreSQL_云數(shù)據(jù)庫RDS for PostgreSQL_華為云
據(jù)庫概念圖.jpg)