我正在啓動一個Django項目,並且需要對多個表進行分片,這些表可能都是行數過多。我已經通過這裏和其他地方的線程看過,並且遵循了Django multi-db文檔,但我仍然不確定這些所有針腳是如何縫合在一起的。我的模型具有會被分片破壞的關係,所以它看起來像是要麼放棄forgo的外鍵來分割相應的模型。分解Django項目
出於參數的考慮,請考慮經典的Authot,Publisher和Book場景,但要投入可以擁有它們的書籍副本和用戶。說書和用戶必須被分解。你會怎麼做?用戶可能擁有不在同一數據庫中的圖書的副本。
一般來說,你用於路由和分片本身的最佳實踐是什麼?你使用Django數據庫路由器,根據你的分片邏輯在命令內手動選擇一個數據庫,還是重寫ORM的某些部分來達到目的?
我在Ubuntu上使用PostgreSQL,如果它很重要。
非常感謝。
似乎對我來說過早優化。你怎麼知道你的服務將會增長如此之多? –
我不知道,但我必須爲此做好計劃。對於大於特定數字的表格,從中進行選擇會變得非常昂貴,甚至更新(特別是在編入索引時)。如果我從一開始就沒有碎片化,至少在邏輯上,以後再做它會更困難。你不同意嗎? – amirey