資料庫知識學習,資料庫設計優化攻略 二

2022-09-18 23:33:17 字數 1460 閱讀 6900

(優化①粗略的進行了表分割槽,優化②為精確資料分割槽) 

➢ 為什麼要表分割槽?

當乙個表的資料量太大的時候,我們最想做的一件事是什麼?將這個表一分為二或者更多分,但是表還是這個表,只是

將其內容儲存分開,這樣讀取就快了 n 倍了

原理:表資料是無法放在檔案中的,但是檔案組可以放在檔案中,表可以放在檔案組中,這樣就間接實現了表資料存放

在不同的檔案中。能分割槽儲存的還有:表、索引和大型物件資料 。

sql server 2005 中,引入了表分割槽的概念, 當表中的資料量不斷增大,查詢資料的速度就會變慢,應用程式的效能

就會下降,這時就應該考慮對錶進行分割槽,當乙個表裡的資料很多時,可以將其分拆到多個的表裡,因為要掃瞄的資料變得更

少 ,查詢可以更快地執行,這樣操作大大提高了效能,表進行分割槽後,邏輯上表仍然是一張完整的表,只是將表中的資料在物

理上存放到多個表空間(物理檔案上),這樣查詢資料時,不至於每次都掃瞄整張表

➢ 什麼時候使用分割槽表:

1、表的大小超過 2gb。

2、表中包含歷史資料,新的資料被增加到新的分割槽中。

➢ 表分割槽的優缺點

表分割槽有以下優點:

1、改善查詢效能:對分割槽物件的查詢可以僅搜尋自己關心的分割槽,提高檢索速度。

2、增強可用性:如果表的某個分割槽出現故障,表在其他分割槽的資料仍然可用;

3、維護方便:如果表的某個分割槽出現故障,需要修復資料,只修復該分割槽即可;

4、均衡 i/o:可以把不同的分割槽對映到磁碟以平衡 i/o,改善整個系統效能。

缺點:➢ 表分割槽的操作三步走

3.1.2.1 建立分割槽函式

◼ create partition function xx1(int) as range left for values (10000, 20000);

注釋:建立分割槽函式:myrangepf2,以 int 型別分割槽,分三個區間,10000 以內在 a 區,1w-2w 在 b 區,2w 以上

在 c 區.

3.1.2.2 建立分割槽架構

◼ create partition scheme myrangeps2 as partition xx1 to (a, b, c);

注釋:在分割槽函式 xx1 上建立分割槽架構:myrangeps2,分別為 a,b,c 三個區間 a,b,c 分別為三個檔案組的名稱,

而且必須三個 ndf 隸屬於這三個組,檔案所屬檔案組一旦建立就不能修改

3.1.2.3 對錶進行分割槽

◼ 常用資料規範--資料空間型別修改為:分割槽方案,然後選擇分割槽方案名稱和分割槽列列表,結果如圖所示:

也可以用 sql 語句生成 create table [dbo].[**cache]( 

[**note] [varchar](300) null,

[bb] [int] identity(1,1)

) on [myrangeps2](bb); --注意這裡使用[myrangeps2]架構,根據 bb 分割槽

資料庫知識學習,資料庫設計優化攻略 四

3.2.1 設計規範化表,消除資料冗餘 資料庫正規化是確保資料庫結構合理,滿足各種查詢需要 避免資料庫操作異常的資料庫設計方式。滿足正規化要求的表,稱為規範化表,正規化產生於 20 世紀 70 年代初,一般表設計滿足前三正規化就可以,在這裡簡單介紹一下前三正規化 第一正規化 1nf 無重複的列 所謂...

資料庫優化 資料庫設計優化

一 索引優化 1.首先索引不是越多越好,要視情況而定。因為索引會降低insert和update的效率 insert和update有時可能會重建索引。2.乙個表的索參數量最好不要超過6個,擇優而建。3.專案上線後,根據使用者的查詢條件字段稍微調整資料庫中的字段索引。二 分表 1.縱切 根據表字段來且分...

優化資料庫設計

資料庫設計步驟 1.需求分析 1.收集資訊 2.標識實體 1.標識實體的屬性 2.標識實體的關係 2.繪製e r圖 e 實體r 關係 3.繪製資料庫模型圖 4.根據sql行程資料庫 第一 二 三正規化 1 第一正規化 1nf 無重複的列 所謂第一正規化 1nf 是指資料庫表的每一列都是不可分割的基本...