資料庫設計及優化

2021-10-01 20:38:56 字數 1633 閱讀 4200

一、影響資料庫的因素

1.系統硬體    

cpu  記憶體   io  網路

2.系統環境

作業系統    資料庫版本    作業系統引數配置    資料庫的引數配置

3.系統的規模

併發量    資料量   使用者量

4.資料庫內部因素

查詢效率(不合理的sql語句、過多的表連線)

表設計不合理    

隱式轉換(字段型別轉換)

統計資訊

鎖資訊二、資料庫優化目標

1.提高系統的吞吐量

2.縮短系統的響應時間

有資料表明,使用者發出請求後可以承受的等待時間是5-10秒。當乙個應用,使用者等待10秒還沒有出來結果,使用者就會失去信心。所以,除了個別的應用以外,必須優化應用,確保及時響應。

三、優化方向

優化:硬體、系統配置、資料表結構、sql語句和索引

硬體:加記憶體、cpu

系統配置:修改資料庫的引數、配置等;

資料表結構:設計合理不合理

sql語句和索引:優化語句寫法、增加索引等

四、什麼時候優化

效能優化伴隨著

系統計畫和設計階段以及整個應用的週期!

五、頁與區

頁:資料儲存的基本單位(page),大小為8kb;

區:八個物理上連續的頁的集合,用來有效的管理頁;

頁型別: 1).資料頁(是儲存除text/ntext/image型別以外的資料行);

2). 索引頁:儲存索引資訊;

3).頁面可用空間頁:儲存可用頁空間資訊;

4).文字/影象頁:儲存text/ntext/image型別的資料;

5).全域性分配對映頁:儲存已經分配的盤區資訊;

6).索引分配對映頁:儲存乙個表或者索引使用的盤區資訊;

7).批量修改對映頁:儲存在上次backup/log時執行批量操作所修改的盤區資訊;

8).差量修改對映頁:儲存上次backup/database差異備份時所修改的盤區資訊。

需要注意:日誌檔案不包含頁,而是包含一系列日誌記錄;

資料頁資料頁大小為8kb

頁面報頭

資料行行偏移矩陣

六、正規化

1.第一正規化:強調的是列的原子性、即列不能夠再分成其它列;

2.第二正規化:首先要滿足它是1nf,另外還需要包含兩部分內容:一是表必須有乙個主鍵;二是沒有包含在主鍵中的列必須完全依賴於主鍵,而不能只依賴於主鍵的一部分;

3.第三正規化:首先是2nf,另外非主鍵列必須直接依賴於主鍵,不能存在傳遞依賴。即不能存在:非主鍵列a依賴於非主鍵列b,非主鍵列b依賴於主鍵的情況;

反正規化設計

不滿足正規化的模型,就是反正規化模型。

就是用空間來換取時間,把資料冗餘在多個表中,當查詢時可以減少或者是避免表之間的關聯;

七、設計表的效能因素考慮

1.適合的字段型別;

2.主鍵:每張表都需要乙個主鍵,用來標識唯一的一條資料;

3.外來鍵

4.約束和規則

合理的需求情況下欄位盡量少,對頻繁使用的大表進行分割,將不常使用的字段資訊存在其它表中,將大物件的列和普通字段分離出來,放在單獨的資料檔案上。

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

一 索引優化 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 是指資料庫表的每一列都是不可分割的基本...

資料庫索引及優化

資料庫索引 一 索引的概念 索引是一種排好序的快速查詢的資料結構。索引本身也很大,不可能全部儲存在記憶體中,因此索引往往以索引檔案的形式儲存在磁碟上。我們平常所說的索引,如果沒有特別指明,都是指b樹 多路搜尋樹,並不一定是二叉的 結構組織的索引。其中聚集索引 次要索引 覆蓋索引 復合索引 字首索引 ...