0
我碰到了一個comment,這讓我想到:如果你使用分片方法來實現數據庫可伸縮性,那麼這是否意味着數據庫是非規範化的?你能有一個規範化,分片數據庫嗎?分片和歸一化是否相互排斥?
我碰到了一個comment,這讓我想到:如果你使用分片方法來實現數據庫可伸縮性,那麼這是否意味着數據庫是非規範化的?你能有一個規範化,分片數據庫嗎?分片和歸一化是否相互排斥?
這不是相互排斥的。在縮放大量數據集時通常都會使用這兩種數據集,但其中一個與其他數據集並沒有多大關係。你絕對可以擁有一個分片的,規範化的數據庫......或者一個非規範化的非分散數據庫。
在分片中,您只需要一個給定的模式(規範化或不規範)並將其分佈到多個物理/邏輯數據存儲中。例如,這允許您讓所有具有特定特徵(例如'A-D'中的姓氏)的用戶在指定的數據庫實例上生存。請注意,如何分割數據庫是一個至關重要的決定,並且將高度依賴於實施。
另一方面,非規範化可以在有或沒有分片數據庫的情況下完成,並且旨在通過減少回答特定問題所需的連接/子查詢來簡化查詢。當然,那麼你通常會以編程方式維護數據的完整性。
一些良好的閱讀: