存儲與索引

存儲與索引


計算機存儲體系

存儲器層次:
在這裏插入圖片描述

斷電是否易失:

易失存儲器:緩存,主存
非易失存儲器:二級、三級存儲器

RAID技術

Redundant Arrays of Independent Disks 冗餘獨立磁盤陣列
一種磁盤組織技術

原理: 通過冗餘提高可靠性,通過並行提高性能
優點: 可靠、高效、易於管理和操作

方案:

方案 特點 優劣 應用
RAID 0 數據被分割
多個磁盤並行讀寫
無冗餘數據 、傳輸高效
一個磁盤失效則影響整個數據
高實時性,低數據可用性
RAID 1 數據鏡像實現數據冗餘 讀寫性能高、一個磁盤失效可自動交換到鏡像之上
需要數據拷貝,數據冗餘
更新操作多的應用(日誌數據存儲)
RAID 5 交叉的將數據和奇偶校驗存於所有的磁盤
所有磁盤參與讀操作,寫代價高
數據量大但寫操作少的應用(視屏數據存儲)

選擇RAID時候的考慮因素:

  • 所需的額外磁盤存儲空間
  • 同時支持的I/O 操作數量
  • 磁盤故障時的數據可靠性
  • 數據重建過程所需的時間

索引

  • 順序索引 (Ordered index)
  • 樹狀索引 (B+ tree)
  • 哈希(Hashing)

索引結構評價指標

  • 支持的查詢類型(精確,範圍查找)
  • 時間複雜度(查詢、插入、刪除)
  • 空間複雜度

順序索引

索引項: 由由key 和指向具有該key 的一個或個記錄指針構成
記錄指針: 磁盤塊標識 :磁盤塊標識+ 塊內偏移

順序索引分類:

  • 聚集索引:一個表一個聚集索引(1:1),記錄文件的物理順序與索引項順序一致
  • 非聚集索引:記錄文件的物理順序與索引順序不同
    • 稠密索引:數據文件中的 每個key都在索引中對應一個索引項 ,通過 記錄指針 指向真正的記錄數據
      • 不訪問數據文件就可以判斷某條記錄是否存在
      • 建立二級索引時需要
    • 稀疏索引:某些key 對應一個索引項 ,如一個塊對應一個索引項
      • 稀疏索引的塊指針比記錄指針所佔空間小,因此每個索引項佔用空間更小,可以在內存中存儲更多的索引項
      • 更便於插入操作

在這裏插入圖片描述
在這裏插入圖片描述

特點:

優點

  • 簡單
  • 索引也是順序文件
  • 便於掃描

缺點

  • 插入代價高
  • 可能失去順序或平衡

樹狀索引

動態,可保持平衡
索引的創建
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

哈希

  • 哈希函數
  • 哈希衝突
  • Hash表中的insert和delete

動態哈希:
允許hash 函數動態改變,以適應數據庫增大或減小的需要,提高空間利用率(可擴充哈希)


hash文件有利於精確查詢或創建臨時文件
順序索引或樹形索引文件便於範圍查詢

create index INDEX_NAME on rel(attr)
create unique index INDEX_NAME on rel(attr)
drop index INDEX_NAME

發佈了57 篇原創文章 · 獲贊 55 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章