2010-10-30 55 views

回答

2

PostgreSQL支持更高級的查詢,它在複雜的查詢上表現更好,但難於管理。

MySQL是快速,易於管理的,但您可能會遇到它對高級查詢,存儲過程等的限制。

它們非常相似,我建議從MySQL開始,但也要學習PostgreSQL。

+4

我最近嘗試了Windows上的PostgrSQL 9.0的當前安裝程序。安裝完全無痛,包括管理GUI pgADMIN。 – 2010-10-30 16:22:23

+0

是的,但一旦你試圖做主/從複製,集羣......它會變得棘手:(安裝MySQL和PostgreSQL很簡單,讓它有效地運行是一個痛苦的屁股。用於爲大型社交網站運行研發)有兩種用途 - 我們使用PostgreSQL來處理複雜的數據(社交信息,分析),並且我們將MySQL用於龐大的非結構化數據庫(用戶消息)。快速,輕鬆地集羣,並且維護起來很簡單。 – qdot 2010-10-30 16:34:01

44

之所以我通常在MySQL之前建議PostgreSQL是因爲MySQL遠離標準(SQL方式)。它不支持使用窗口函數(8.4版),公用表表達式(8.4),CHECK約束,EXCEPT/MINUS運算符,甚至是全外連接...即使你可能從未聽說過這些單詞,在某些時候將不得不使用這些概念。

我強烈建議你從PostgreSQL開始,然後你可以瞭解什麼是「真正的」SQL。然後,你可以決定MySQL是否足夠。

P.S.我從MySQL開始,並對此表示遺憾。我現在使用PostgreSQL,我喜歡它。

+5

用於綜合列表的差異 – bernie 2010-10-30 16:30:40

+0

好的,具體的信息。性能結果是針對PostgreSQL的,有時候有一個輕量級的SQL是一個好主意,尤其是如果你不需要額外的膨脹,但你想要的東西仍然是SQL,而不是與NoSQL數據存儲範例一起使用 – qdot 2010-10-30 16:37:21

+0

MySQL的神話比PostgreSQL更快的速度現在已經有好幾年了。特別是自8.3以來,PostgreSQL在高事務性寫入場景中擴展性更好。當涉及到複雜的語句時,優化器更加智能化。帶MyISAM的MySQL可能仍然會更快,那麼你就失去了DBMS的所有優勢,比如交易和(外鍵)限制 – 2010-10-30 16:48:06

7

剛開始的時候,我想你會比PostgreSQL的pgadminIII GUI工具更加欣賞那些我爲MySQL試用過的工具。然而,這可能只是我的偏好。

當你過去的基礎知識你一定要充分利用PostgreSQL的支持window functions在8.4版

其實我建議的PostgreSQL對MySQL單獨的窗口功能啓動。請注意,有很多方法可以模擬MySQL中的窗口函數。

+0

我完全同意。而遞歸公用表表達式是另一個選擇Postgres而不是MySQL的理由。並更好地遵守標準...並檢查約束......並推遲約束... – 2010-10-30 16:44:53

+1

+1:我不喜歡與WorkBench工作 – 2010-11-02 04:31:53

+0

我討厭ctrl-c退出MySQL中的控制檯。在psql中它只是取消當前的命令。 – 2011-01-17 15:12:21

22

目前已經支持的PostgreSQL了很多偉大的點,但我將新增1:

PostgreSQL有任何數據庫產品我合作過的the best documentation

這就是爲什麼文檔中脫穎而出:

  • 它實際上是教你SQL的基本知識
  • 這是很容易理解
  • 它具有很好的例子
  • 這是非常良好的組織
  • 它不僅僅是一個功能列表與技術說明
  • 它全是,寫得很好

其他供應商應該爲他們嘗試和作爲文檔傳遞而感到羞恥。

+2

每次我都要去看看關於Sybase的東西,我想哭泣和尖叫PostgreSQL的文檔確實不可思議 – 2010-11-02 04:46:02

+0

哪裏有文檔鏈接 – aWebDeveloper 2012-05-20 17:26:46

+8

@WebDeveloper,有你試過谷歌?這是「PostreSQL文檔」的第一個結果。 – mikerobi 2012-05-20 17:48:16

5

你經常聽到PostgreSQL愛好者認爲它是一個「真正的」RDBMS,而MySQL不是。這種勢利行爲對新移民來說是危險的,因爲它是在多年的特定經歷與某種特定類型的摩擦之後產生的。如果你想用什麼樣的知識來解決這個問題,那麼你最有可能找到使用MySQL的人比PostgreSQL更有效。圍繞開源軟件構建的大型網站大大優於PostgreSQL選擇MySQL。

就我個人而言,我喜歡MySQL,因爲它符合我的開發風格 - 它只是讓東西完成。我不使用外鍵。我肯定不使用存儲過程。但是MySQL做了什麼,它做得很好,它的速度很快,它做到了,同時給了我一個快樂的「好的,有道理的」感覺我沒有得到PostgreSQL(我已經廣泛使用過)。有很好的社區支持MySQL和優秀的文檔。如果你需要複製(而誰不復制?)MySQL是明確的贏家,沒有問題。

如果你切換到寬容的數據庫,有些事情可能會導致MySQL的壞習慣。但事情就是這樣 - 所有這些都是關於如何準備好從RDBMS X跳轉到RDBMS Y的一切話題。根據我的經驗,這種情況很少發生,而且當它發生時,從一個數據庫到下一個數據庫總是存在古怪的差異。 MySQL與PostgreSQL不同,PostgreSQL與Oracle不同,它不同於SQL Server,它與sqlite等不同,我使用了上面列出的所有dbs,但是我一直使用的是MySQL最容易和靈活地完成事情。

DBA喜歡以與編程語言愛好者一樣的方式放下My​​SQL,以此來抨擊PHP - 但它們仍然存活並蓬勃發展。這是有原因的 - 他們只是工作,他們只是做些事情。但是在一天結束的時候,你應該玩弄所有這些,並且做出自己的想法。

+1

你能詳細說明一下「完成任務嗎?」這聽起來對我來說是這樣說的:這是我遇到的第一件事,並且忍受了它。 PHP/MySQL,因爲我腦海中的這兩個詞是相互關聯的。 – 2013-02-07 10:23:41

相關問題