2011-05-09 59 views
1

我已經在幾個rails應用程序上工作過,現在我從數據庫端工作到一個非常複雜的應用程序。大量的嵌套模型,幾個polymorphyc協會...非常複雜的數據庫體系結構,如何處理它?

你如何處理這種複雜性?我怎麼知道我們正朝着好的方向努力?性能問題呢?

Thansk爲您的意見。

+0

更多的信息會對您有所幫助。你能提供一些你想到的東西的例子嗎? Postgresql的對象關係能力被使用,還是僅僅因爲它是免費的?等 – hythlodayr 2011-05-09 20:32:34

+0

許多數據類型,許多數據,許多文件,許多域名,許多路線..在同一個應用程序。 postgresql沒有什麼特別的功能,只是因爲它是免費和快速的。 – Hartator 2011-05-09 22:07:50

回答

0

首先,你需要估計你的應用程序運行時對數據庫的查詢性能。然後,您可以嘗試優化查詢,例如通過添加一些索引。也許在某些情況下,您還需要考慮對數據進行非規範化以獲得更好的性能。

查詢的性能也取決於您的數據大小。如果你有非常大的數據集並且查詢是最優的,那麼你可以考慮引入(分佈式)緩存。或者,如果數據模型允許考慮在多個節點上分區數據庫以提高查詢性能。

但第一步應該是設置一些SQL查詢性能監視。

-3

您應該考慮NOSQL解決方案,例如MongoDB或CouchDB。有時RDBMS不適合這項工作。

http://www.mongodb.org/

所有的

http://couchdb.apache.org/

+0

這是爲什麼?我覺得編寫代碼會更困難。 – Hartator 2011-05-09 20:26:26

+0

如果你有很多的多態性,你可能會得到更多的表格。 MongoDB讓你存儲和搜索JSON對象。在這種情況下,您不需要在每個「行」中都有相同的「列」,並且可以輕鬆地嵌入對象(就像在JSON中一樣)。最重要的是,有些庫很容易使用,例如Mongoid和mongomapper。 – Zeki 2011-05-09 20:29:18