2012-04-14 89 views
13

我目前正在研究一個虛擬機上必須存在的內存非常低的網站(目前我被告知期望512mb)。不幸的是,至少在不久的將來,數據庫和Web應用程序必須是同一臺服務器。輕量級數據庫(SQL或NoSQL)

現在我已經通讀了一些問題,並試圖做我自己的研究,但有很多選擇可供選擇。從本質上講,我可以安裝一個足夠輕的數據庫服務器? SQL或NoSQL並不重要;它不會是數據庫密集型的,但我希望不會受到我現在選擇的任何限制。如果可能的話,這意味着多服務器擴展的道路將會非常好,但顯然這不是現階段的要求。

我目前的想法是MongoDB或MySQL,但我不確定這些是否是最佳選擇。

我的web應用程序運行在PHP的nginx上,我認爲這是現在的最佳選擇,所以我主要關心的是數據庫端。

+0

PHP和MySQL是經常看到的情侶,它似乎也適合你。 – 2012-04-14 04:46:40

+0

幾乎任何像樣的數據庫都可以很好地運行,儘管內存很多(但顯然當它們有更多的內存時它們會更快)。 – 2012-04-14 05:36:25

回答

11

如果你需要最輕的 -weight數據庫,我會說sqlite 3。它的目的是爲了這個任務而設計,is small and fast,根據我的經驗是可靠和易於使用的。

我不使用PHP自己,但似乎有support here

sqlite支持非常多的「標準」sql,除了它不強制類型 - 您可以定義一個列爲文本,但存儲和檢索整數值,如果你覺得它。在實踐中,這不是什麼大問題,只要你不使用這個「功能」,你可以在將來轉換到更大的數據庫,而不會有麻煩。

但是,在實踐中,我會從MySQL開始,因爲它可能已經安裝並可用。如果它給你內存使用的問題,切換到SQLite。但是對於一個簡單的,沒有裝飾的數據庫,你可以從mysql開始。

3

在關係數據庫或面向文檔的數據庫之間進行選擇時,最好關注特定應用程序的數據存儲需求。如果一個更適合於關係數據庫的應用程序是在面向文檔的數據庫(如MongoDB)上編寫的,那麼效率會更低,而且會消耗更多的資源。

3

您沒有看到OrientDB

OrientDB具有文檔數據庫的靈活性和圖表數據庫管理關係的能力。它可以工作在無模式的 模式,模式完全或兩者的混合。支持高級功能,如 ACID Transactions,Fast Indexes,Native和SQL查詢。它會導入 並以JSON格式導出文檔。

+0

謝謝,我會檢查出來的! – Kris 2012-05-04 13:08:54

+0

OrientDB是否輕便? – 2017-08-28 21:10:16

+0

@ParrisVarney LOL no。它遠非輕量級。我強烈建議不要使用OrientDB。 – 2017-11-10 23:40:59