[英]Implement read only / write only database server architecture
我們有一個ASP.NET MVC3 Web應用程序,其中包括以下內容:
為了提高性能,建議我們對以下內容實施架構:
這是一個很粗糙的主意,我不確定它是否會提高我們的系統性能。
支持該參數的情況是80% ,這些操作是只讀的。 它們可以在高速緩存DB上創建 (由於將它們配置為只讀,因此它們速度更快)。 其他20%可以在Write DBs上進行 。
但是,我有以下問題:
好的設計,類似於我曾經討論過的關於如何創建每個人都可以添加但無法更新或刪除的審計數據庫的討論。
如果狀態設置為只讀,則無法更改數據庫,因此您無法利用SQL Server中的該功能。 我認為只讀數據庫的真正優勢在於,您可以在執行查詢時忽略鎖定,並且可以創建專門的索引,而不會發生任何變化。 根據http://sqlblog.com/blogs/linchi_shea/archive/2007/10/01/performance-impact-setting-a-database-to-read-only.aspx (對於SQL 2005),將其設置為只讀不是那么大。
如果您願意犧牲一些一致性,則可以將查詢的“隔離級別”降低到“讀取已提交”,以便生成更少的鎖。
創建兩個數據庫的一個優點是,它使您能夠在不同數據庫服務器之間分離數據庫。 這樣,即使CacheDb服務器具有100%的CPU負載和網絡負載,也可以保證寫入操作成功。
我假設Write DB將允許所有用戶進行寫入(甚至可能不允許讀取?),而Cache DB僅允許用戶具有讀取特權,而特定的服務帳戶則具有write特權。
可以使用SQL Server集成服務(SSIS)在Write DB和Cache DB之間進行內容同步,並且我認為設計傳輸邏輯並不難。 將兩台服務器都放在同一建築物中,並且它們之間具有千兆位網絡,這意味着您的傳輸延遲會很短。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.