2011-08-19 52 views
1

很多人都說通過創建只讀和只寫數據庫可以實現更高的性能,坦率地說,我不能完全理解它。有些人告訴我,寫作需要許多不同的鎖,這會降低閱讀速度......但正如我的理解,系統中的許多閱讀不需要鎖,例如oracle一致性閱讀,鎖如何影響閱讀?此外,如果我想分片數據庫,讀/寫分離提供更多的價值?
您可以給出詳細的解釋或提供一些外部資源,說明爲什麼讀/寫分隔可以提供更高的性能,謝謝。分離成只讀數據庫

回答

5

首先,分離讀寫允許數據庫使用主從複製進行擴展。

在主從複製中,主服務器可以處理讀取和寫入操作,而從服務器只能處理讀取操作。從機然後複製在主機上完成的任何寫入語句。

這允許讀取繁重的應用程序在多臺機器上傳播讀取內容。但是,如果您的應用程序執行大量寫入操作並且讀取次數不多,您可能看不到任何好處。

在應用程序中從一開始就分離讀寫操作,可以隨時靈活地選擇主從路由,而且不是很難做到。當這種功能不是必需的時,你可以簡單地讓你的數據庫抽象使用相同的連接。