2009-08-27 53 views

回答

4

我認爲這取決於你的意思是「更好」。您應該在選擇其中一個之前確定您的需求。

更快?更可靠?允許複製?可以做更復雜的查詢嗎? 您的應用程序是否適用於「分片」,在這種情況下,您可能需要一個可以羣集並更容易管理的數據庫,或者您需要一個大型鏈接表集合中的所有內容,在這種情況下,您可能需要良好的支持 對於許多內核和大內存。您是否有 設置了複雜身份驗證,還是簡單的「單用戶」Web應用程序? 是二進制對象中的大部分數據,還是簡單的數字和字符串? 你將如何做你的備份?

MySQL和PostgreSQL都似乎是非常有能力的數據庫,都 已經在大規模成功使用,所以我建議你需要 確定應用程序的特定需求第一。

我的傾向是對PostgreSQL,但主要是因爲我有 幾次災難與MySQL丟失數據幾年前,我還沒有來 再次信任它。 PostgreSQL在能夠很容易地備份 方面一直很不錯。

+0

抱歉,因爲我沒有告訴過你的需求...當然它必須是可靠和更快......目的是爲了報告系統,但它與記錄的百萬.. – user149513 2009-08-27 03:36:59

+0

關於MySQL有趣的故事播放。你能擴展你的災難故事嗎? – User1 2010-05-12 23:02:42

+0

它不久前(MySQL 4也許?),我們有一個UPS失敗,導致數據庫服務器崩潰。我們在同一臺機器上的PostgreSQL數據庫是絕對好的,但是MySQL是不可恢復的。 (是的,我們有備份但仍失去了大約23小時的數據) – 2010-05-23 22:54:04

5

我已經在類似的情況下使用過,而且純粹的數據庫大小似乎不會以實質上不同的方式影響它們的縮放比例。 PostgreSQL更加完整和堅實,並且能夠更好地支持複雜的查詢和優化,而MySQL可以在極其簡單的查詢方面提高檢索速度;但是這些方面與絕對尺寸問題無關。

2

那麼,它最終取決於你最舒服的。根據MySQL的說法,對數據庫的大小沒有強加的理論限制......它取決於支持它的硬件的能力。通過使用InnoDB的行數,理論上的限制是256兆兆字節。我一直拋棄理論的原因是,你可能有一個非常小的機會,你可能會索引256TB的數據,所以這就是他們近似的數據。可能是一個限制。如果你達到最大值,你會遇到更大的問題。我認爲目前正在製作的MySQL用戶是YouTube和Facebook。這可能是兩個最大的......而且看起來他們的表現很好。

但是再一次,如上所述。這是你最舒服的方式。

4

Postgres擁有更豐富的功能和更好的優化器;它的散列連接能力通常比連接MySQL的速度快得多。據傳MySQL對於簡單表掃描速度更快。您在下面使用的存儲引擎也很重要。在某些時候,縮放成爲兩種選擇之間的選擇:通過購買更大的硬件來擴展規模,或者通過引入新機器來擴展規模(您可以將數據碎片化,用作從副本,或嘗試主 - 主設置 - - Posgres和MySQL都爲這些類型的事物提供了各種質量級別的解決方案)。表數據的

幾百萬行安裝在一個標準服務器的內存,這些天;如果這就是你所做的一切,那麼你不需要擔心這些東西 - 只要優化你最喜歡的數據庫,確保創建了正確的索引,一切都被緩存了(在適當的地方使用了類似memchached的東西) , 等等。

人們提到Facebook使用MySQL;這是真的。有點因爲他們實際上在做的是使用數百(數千個)mysql數據庫,他們全都負責自己的一小部分數據。如果你認爲你可以將facebook加載到MySQL(或postgres或oracle)實例中......那麼他們可能會喜歡聽到你的聲音;-)。

一旦你進入太字節的土地,事情變得困難。有專門的解決方案,如Vertica,Greenplum,Aster Data。有各種「nosql」數據存儲,如Cassandra,Voldemort和HBase。但我懷疑你需要去這麼極端。只需購買更多的RAM。