我剛開始設計分佈式存儲數據庫的'模式'。NOSQL設計,沒有反規範化?
我一直在精神辯論多少去正常化。我知道如何做到這一點,以及爲什麼它會提高性能,如果非規範化匹配查詢以儘量減少從多個地方收集數據...
...但是,人們經常說,過早優化是不好的。關係型設計的優勢在於引用而不是嵌入重複數據:優雅,靈活,不用擔心保持重複數據的一致性等。
所以我現在想知道是否合理的策略是以非常相關的方式設計架構,根據需要使用應用程序層收集數據,並在需要時稍後更改。
如果流量成爲問題,我已經開始使用一種技術,可以通過一些設計更改(隔離,非規範化)來水平擴展。
好像它可能是其中最好的選擇:
- 開始與RDBMS,如果需要的話
- 開始採用分佈式存儲移動到分佈式存儲,全非規範化設計(規模就緒)
- 從關係設計的分佈式存儲開始,如果需要則進行非規範化+隔離
想法?
感謝
你有多大的信心會超出關係型數據存儲的容量?你認爲那個能力是什麼?你期望超過什麼維度的關係容量(數據量,交易率等)?如何鎖定數據設計?您沒有提到最重要的關係優勢之一 - 架構可延展性。 – dkretz
@le dorfier如果產品成功了,由於寫入次數的原因,它將以超過傳統方式捆綁在一起的3-4個強壯的mySQL服務器的容量。當然,總有一種方法可以讓mysql實例充當使用應用層智能的分佈式節點,但是noSQL解決方案似乎提供了其中一些功能,可以編寫更少的應用層代碼。模式延展性確實是一個問題: - ( –