數據庫分區
定義:數據庫分區是一種對表的分割,分區對訪問用戶是透明的。分區能夠提高數據庫的讀寫性能,提高數據庫的效率,但又不是總能提供效率。

優缺點:
1、分區技術就是把一個大塊數據分成n小塊,這樣查詢的時候可以快速定位到某一小塊上,在小塊中尋址可以快很多。另一方面CPU比磁盤IO快很多倍,而硬件上又有多個磁盤,或者是RAID(廉價磁盤冗余陣列),可以讓數據庫驅動CPU同時去讀寫不同的磁盤,這樣才有可能可以提高效率。
2、分區有時候不能提高讀寫效率,例如按照日期字段去分區MSDN例子,這個實例中是按照記錄的生成時間來分區的,把一年的數據分割成12個分區,每月一個。這樣的分區導致分區并不能實現CPU同步寫并提高寫入性能,因為在同一個時段CPU總是要寫入到最新的那一個分區對應的磁盤中。而且這樣也不一定能夠提高讀取性能,具體要看根據什么字段來查詢,如果是根據時間來查詢,根據時間生成報表那么這種分區肯定會提高查詢的效率,但是如果是按照某個客戶查詢客戶最近1年內的賬單數據,這樣數據分布到不同的分區上,這樣的話效率就不一定能提高了,這要看數據在同一個分區上連續分布的讀性能高,還是CPU從幾個磁盤上同步讀取,然后在合并數據的性能更高一些,這和讀取數據的記錄數也有關系。
如何使用:
具體要是分區和涉及的業務而定。例如:做一個論壇,對論壇的帖子和回復表進行分區。論壇中最常見的
寫操作:
1)發帖
2)回復帖子,
最常見的讀操作是
1) 根據帖子id顯示帖子詳情和分頁的帖子回復
2) 根據帖子版面帖子列表頁根據版面id分頁讀取帖子列表數據
怎么分區更合適呢?(現在還沒有準確答案)
方案1. 根據帖子ID區域段分區(1-300w一個分區、300w-600w一個分區?),這樣理論上可以提高帖子詳細頁的讀取速度,而對于寫操作性能沒有益處,對于根據版面id讀取帖子列表頁有可能有益
方案2. 根據版面id進行分區,這樣對于寫性能應該有提高,不同的分區對應不同的版面,當有兩個版面同時有發帖回帖操作時,有可能可以并發寫。對于根據版面id獲得帖子列表頁數據也可以提高性能,而對于帖子詳細信息頁沒有性能影響。
多大數據庫需要分區:
目前無準確定義,經驗值一個表的記錄超過1000w,并且每個月百萬數據量增長,那么就有可能需要分區。
文章轉自異步社區
軟件開發
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。