我正在處理半打數據庫。數據庫都具有相同的模式,相同的SP等。對於最初設計數據庫的人來說,使用多個數據庫的動機的很大一部分是效率;另一種方法是在數據庫中的幾乎每一個表和sp上添加一列,以指示正在處理哪組數據,從而導致一個巨型(因此較慢)的數據庫而不是幾個小型數據庫。代替具有指示要查詢哪組數據的列,連接字符串用於選擇正在被命中的數據庫。如果我想將許多DB合併到一個數據庫中,我應該記住什麼?
我真的不喜歡這個組織的唯一原因是它涉及很多代碼重複,從而傷害了維護。例如,每次我希望更改存儲過程時,都需要在每個數據庫上運行alter語句。
我考慮過的一個解決方案是將所有數據組合成一個大型數據庫,在整個地方添加一個額外的列以指示數據將在哪個數據庫中,如果我沒有合併它。然後,我可以通過此列的值對所有表格進行分區。理論上,所有這些數據的結果都是道德上與現在相同,但是沒有索引,模式,SP等中的冗餘。
我的問題是這樣的:
- 這是個好主意嗎?有沒有更好的方法來完成這一點?
- 有沒有這樣做的陷阱?
- 這會對性能產生影響嗎?
術語「多租戶」是我爲了研究這個問題而需要的。 – Brian 2010-02-12 22:00:19