{eval=Array;=+count(Array);}
在實際開發(fā)中,絕大部分開發(fā)人員應該都沒有機會接觸到上億級別的數據,如果SQL Server中的數據量達到億級了,我們勢必要對數據庫服務器做一系列的優(yōu)化措施,否則難以支撐這個量級。
1、合理的索引
眾所周知,合理的索引可有效提升SELECT效率。但是,在大量寫入操作時,索引是要維護的,會降低寫入速度。所以要建立合理的索引,而不是索引數量越多越好。對于多余索引、低效索引都可以刪除掉。
2、分布式數據庫部署
我們可以按業(yè)務類型將數據做垂直領域劃分,不同業(yè)務存儲在不同數據庫服務器上,通過分布式部署將業(yè)務分離,有效緩解了數據庫壓力。不過這種分布式部署對于后期業(yè)務整合和綜合查詢不是太友好,架構如下圖示:
3、數據庫分區(qū)
默認情況下,數據庫里一張表的數據都會存儲在一個地方,但采用分區(qū)后,這些數據會均衡存儲在不同地方,這樣做能提高SELECT查詢效率。一旦某個分區(qū)損壞后,也可以利用修復工具對單分區(qū)進行修復。注意,數據庫分區(qū)只適用于海量數據前提下,數據量較少時不需要做,因為數據庫分區(qū)也有一定的性能消耗。
4、數據庫分表
數據庫本身都是有性能瓶頸的,我們可以采取橫向擴展方案來解決查詢效率問題。可以根據業(yè)務需求,按一定規(guī)則(比如:時間)來對數據進行分表存儲,這樣一個大的數據集被分割成很多小的數據集,每次查詢都在小的數據集合里查詢,性能會更高。
5、讀寫分離
讀寫分離顧名思義就是數據庫讀操作和寫操作在不同數據庫上。因為數據庫為了保證數據有效性,在寫入數據時往往會進行寫鎖操作,很多情況下會影響讀操作的性能。我們寫入數據時操作主庫,查詢數據時操作從庫,提高了數據并發(fā)性。
SQL Server提供了一個SQL Server Profile工具,通過它可以分析數據庫查詢效率。如下圖示:
以上就是我的觀點,對于這個問題大家是怎么看待的呢?歡迎在下方評論區(qū)交流 ~ 我是科技領域創(chuàng)作者,十年互聯(lián)網從業(yè)經驗,歡迎關注我了解更多科技知識!
0
回答0
回答0
回答0
回答2
回答0
回答0
回答0
回答0
回答0
回答