高效能網站建設之 MS Sql Server資料庫分區

來源:互聯網
上載者:User

什麼是資料庫分區?
資料庫分區是一種對錶的橫向分割,Sql server 2005企業版和之後的Sql server版本才提供這種技術,這種對錶的橫向分割不同於2000中的表分割,它對訪問使用者是透明的,使用者並不會感覺的表被橫向分割了。(2000中的表橫向分割是建n個表例如按時間建表每月一個表,表名不同,最後需要做一個大視圖)

關於具體的如何做分區,請參考資料庫分區演練http://www.cnblogs.com/yukaizhao/archive/2008/05/07/sql_partition_test.html

為什麼要分區?
顯而易見分區是為了提高資料庫的讀寫效能,提高資料庫的效率;

分區是否總是可以提高效率?
分區是一把雙刃劍,並不總能提高效率,這和具體情況有關係。
之所以有分區技術,分區技術用的好的話可以提高效能,是因為一方面分區把一大塊資料分成了n小塊,這樣查詢的時候很快定位到某一小塊上,在小塊中定址要快很多;另一方面CPU比磁碟IO快很多倍,而硬體上又有多個磁碟,或者是RAID(廉價磁碟冗餘陣列),可以讓資料庫驅動CPU同時去讀寫不同的磁碟,這樣才有可能可以提高效率。
分區在有些時候並不能提高讀寫效率,比如說我們經常看到的按照日期欄位去分區MSDN例子,這個執行個體中是按照記錄的產生時間來分區的,把一年的資料分割成12個分區,每月一個。這樣的分區導致分區並不能實現CPU同步寫並提高寫入效能,因為在同一個時段CPU總是要寫入到最新的那一個分區對應的磁碟中。另一個問題是:這樣分區是否可以提高讀取效能呢?答案是不一定,要看根據什麼欄位來查詢,如果是根據時間來查詢,根據時間產生報表那麼這種分區肯定會提高查詢的效率,但是如果是按照某個客戶查詢客戶最近1年內的賬單資料,這樣資料分布到不同的分區上,這樣的話效率就不一定能提高了,這要看資料在同一個分區上連續分布的讀效能高,還是CPU從幾個磁碟上同步讀取,然後在合并資料的效能更高一些,這和讀取資料的記錄數也有關係。

如何分區?用什麼欄位做分區依據?
具體如何分區和涉及的業務有關係,要看業務上最經常的寫入和讀取操作是什麼,然後再考慮分區的策略。

既然與具體業務相關,我們就假定一個業務環境,假如我們要做一個論壇,對論壇的文章和回複表進行分區。
論壇中最常見的寫操作是1)發帖 2)回複文章,
最常見的讀操作是
1) 根據文章id顯示文章詳情和分頁的文章回複
2) 根據文章版面貼文清單頁根據版面id分頁讀取貼文清單資料
怎麼分區更合適呢?現在還沒有準確答案,我有兩種可能的方案,寫下來,大家討論看看。
方案1. 根據文章ID地區段分區(1-300w一個分區、300w-600w一個分區…),這樣理論上可以提高文章詳細頁的讀取速度,而對於寫操作效能沒有益處,對於根據版面id讀取貼文清單頁有可能有益
方案2. 根據版面id進行分區,這樣對於寫效能應該有提高,不同的分區對應不同的版面,當有兩個版面同時有發帖回帖操作時,有可能可以並發寫。對於根據版面id獲得貼文清單頁資料也可以提高效能,而對於文章詳細資料頁沒有效能影響。

多大的資料量才需要分區?
這個問題我只能說一個內部標準,如果一張表的記錄超過在超過1000w,並以每月百萬的資料量增長,那就需要分區。大家有不同的看法請回複討論

關於具體的如何做分區,請參考資料庫分區演練http://www.cnblogs.com/yukaizhao/archive/2008/05/07/sql_partition_test.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.