設計高效能資料庫[最佳化資料庫結構]–筆記

來源:互聯網
上載者:User
最佳化結構的方式

       分離使用者資料庫與系統資料庫

       建立資料庫表分區

       建立垂直分表

       建立水平分表

資料庫物件的部署      混合放置的缺點

              在我們建立資料庫的時候,一般來說使用者資料庫預設路徑和系統資料庫是放在一起的,這種部署方式有嚴重問題:假如有一個第三波書店的資料庫,使用者對它頻繁訪問,資料庫所在的磁碟輸送量已經接近極限,那麼這個時候系統資料表就沒有更多的資源來使用,就可能導致長時間的排隊或者死結。為了減少多個表之間的資源爭奪可以把多個資料庫物件分開放在不同的磁碟上。也就是實現分離使用者資料庫和系統資料庫

      分離使用者資料庫與系統資料庫【降低資源競爭】

              減少資源競爭

                     盡量避免資料死結

              如果資料庫已經建立推薦以下實踐步驟:

1.       分離資料庫

2.       找到分離後的資料檔案和記錄檔,分表將記錄檔和資料檔案複製到不同磁碟的目錄下

3.       附加移位後的資料庫檔案還原資料庫

檔案和檔案組

       檔案和檔案組允許跨磁碟、磁碟控制卡、RAID建立資料庫

       比如計算上有四個物理磁碟,那麼可以建立一個由三個資料檔案和一個記錄檔組成的資料庫,這樣在對資料進行訪問的時候四個讀寫的磁頭可以同時並行地訪問資料,從而加快資料庫操作速度。

檔案和檔案組還允許資料布局,可以在特定的檔案組上建立表,這樣可以改善效能

我們可以將特定的表所有的IO都定向到一個特定的磁碟,那麼如何在檔案組上見表?

       文法:

              CREATE TABLE [表名]

              (

                     --表欄位1

                     --表欄位2

              ) ON [PRIMARY/檔案組名]

建立垂直分表      將大型表從欄位上分,這叫垂直分表      垂直分表通常是將大型表的大文字欄位從原表分離【將大文字欄位分離後原來的資料頁上每頁可以儲存更多的資料】,然後儲存在其它表中

       例如從圖書表中將ContentDescription、TOC欄位分離出來放在單獨的表中,這兩個欄位是nvarchar(max)類型

垂直分表代碼示範:

---分離大文字欄位

SELECT A.ContentDescription,A.TOC,A.Id

INTO Book_detail

FROM Book A

---從原表中刪除原來的大文字欄位

ALTER TABLE BOOK

DROP COLUMN CONTENTDESCRIPTION

 

ALTER TABLE BOOK

DROP COLUMN TOC

 

 

建立水平分表

       將大型表從資料類別上或者時間欄位上分,這叫水平分表

       水平分表通常做法比較多,根據不同的業務需求有不同的劃分

水平分表示範:

       SELECT

       INTO

       BOOK_2008

       FROM BOOK

       WHERE PUBLISHERDATE>='2008-1-1' AND PUBLISHDATE<'2009-1-1'

 

       SELECT

       INTO

       BOOK_2009

       FROM BOOK

       WHERE PUBLISHERDATE>='2009-1-1' AND PUBLISHDATE<'2010-1-1'

 

       SELECT

       INTO

       BOOK_2010

       FROM BOOK

       WHERE PUBLISHERDATE>='2010-1-1' AND PUBLISHDATE<'2011-1-1'

 

注意:事前良好的資料庫設計【預計資料規模負荷有多大決定是否採用水平分表】勝過事後進行水平分表【事後分表可能引起程式較大改動】。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.