《數據庫系統概念》16-位圖索引和查詢處理

 

1、位圖索引
位圖索引(bitmap indices)是一種專爲多個鍵的簡單查詢而設計的。應用位圖索引的前提是記錄必須被按順序編號,通常從0開始。給出編號n,必須可以很容易的找到對應的記錄,若是記錄被存放在連續的塊,能夠將編號n轉換成塊編號+塊內偏移的表示以快速定位記錄位置。數據庫

位圖索引的結構學習


位圖索引用一個位來對應一條記錄,這即是記錄須要被編號的緣由。instructor_info表如上圖,性別的值有男、女兩種,收入等級則劃分爲5級,既有5種值。在給性別屬性創建位圖索引時,就會分別爲male和female創建,對於male位圖來講,若是一條記錄的性別爲male,則位圖上對應的位會置1,female、收入等級位圖也採用相同的作法。
位圖索引的優點體如今根據多個鍵的查詢的時候,好比查詢where gender=’f’ and income_level=’L2’,只需將f的bitmap和L2的bitmap取交集便可。
此外,在進行數據分析時常常須要統計符合某些條件的記錄的數量,使用bitmap也能夠很方便地實現,只需統計交集中值爲1的位的數目。
刪除記錄的時候會使數據序列產生間隙,但逐個移動數據消除間隙開銷很大,因此引入一個新的存在位圖(existence bitmap),在間隙對應的位置1。新增的數據將被追加到尾部,這樣不會影響已有記錄的順序。優化

 

2、查詢處理翻譯

在從數據庫提取數據的過程當中,查詢處理要作的操做有:語法分析與翻譯、優化、評估與執行。設計

查詢代價的度量
使用傳送磁盤塊數(number of block transfers)和搜索磁盤次數(number of disk seeks)來衡量查詢的代價。假設磁盤子系統傳輸一個塊的數據須要tT秒,搜索數據須要ts秒,則傳送b個塊並進行S次磁盤搜索的操做將消耗b*tT+s*ts秒。如今磁盤的典型數值爲tT =0.1毫秒,ts =4毫秒,假定磁盤塊的大小是4KB,傳輸率爲40MB/秒。
經過將讀操做與寫操做區分開能夠作出更精細地估算,寫操做花費的時間約爲讀操做的兩倍,由於寫完數據後,磁盤系統會再次讀取該扇區以驗證寫入是否成功。blog

 

學習資料:Database System Concepts, by Abraham Silberschatz, Henry F.Korth, S.Sudarshan索引

相關文章
相關標籤/搜索