《資料庫索引設計與最佳化》是2015年出版的圖書,作者是Tapio Lahdenmaki、Michael Leach。
基本介紹
- 書名:資料庫索引設計與最佳化
- 作者:Tapio Lahdenmaki(塔皮奧·拉赫登邁奇),Michael Leach(麥可·利奇)
- 譯者:曹怡倩,趙建偉
- 出版時間:2015-06
內容簡介,目錄,
內容簡介
本書提供了一種簡單、高效、通用的關係型資料庫索引設計方法。作者通過系統的講解及大量的案例清晰地闡釋了關係型資料庫的訪問路徑選擇原理,以及表和索引的掃描方式,詳盡地講解了如何快速地估算SQL運行的CPU時間及執行時間,幫助讀者從原理上理解SQL、表及索引結構、訪問方式等對關係型資料庫造成的影響,並能夠運用量化的方法進行判斷和最佳化,指導關係型資料庫的索引設計。
目錄
第1章 概述 1
關於SQL性能的另一本書 1
不合適的索引 3
誤區和誤解 4
誤區1:索引層級不要超過5層 5
誤區2:單表的索引數不要超過6個 6
誤區3:不應該索引不穩定的列 6
示例 7
磁碟驅動器使用率 7
系統化的索引設計 8
第2章 表和索引結構 10
介紹 10
索引頁和表頁 11
索引行 11
索引結構 12
表行 12
緩衝池和磁碟I/O 12
從DBMS緩衝池進行的讀取 13
從磁碟驅動器進行的隨機I/O 13
從磁碟伺服器快取進行的讀取 14
從磁碟驅動器進行的順序讀取 15
輔助式隨機讀 15
輔助式順序讀 18
同步I/O和異步I/O 18
硬體特性 19
DBMS特性 20
頁 20
表聚簇 21
索引行 21
表行 22
索引組織表 22
頁鄰接 23
B樹索引的替代品 24
聚簇的許多含義 25
第3章 SQL處理過程 27
簡介 27
謂詞 27
評註 28
最佳化器及訪問路徑 28
索引片及匹配列 29
索引過濾及過濾列 29
訪問路徑術語 31
監控最佳化器 32
幫助最佳化器(統計信息) 32
幫助最佳化器(FETCH調用的次數) 32
何時確定訪問路徑 33
過濾因子 34
組合謂詞的過濾因子 35
過濾因子對索引設計的影響 37
物化結果集 39
游標回顧 39
方式1:一次FETCH調用物化一條記錄 40
方式2:提前物化 41
資料庫設計人員必須牢記 41
練習 41
第4章 為SELETE語句創建理想的索引 43
簡介 43
磁碟及CPU時間的基礎假設 44
不合適的索引 44
三星索引——查詢語句的理想索引 45
星級是如何給定的 46
範圍謂詞和三星索引 48
為查詢語句設計最佳索引的算法 49
候選A 50
候選B 50
現今排序速度很快——為什麼我們還需要候選B 51
需要為所有查詢語句都設計理想索引嗎 52
完全多餘的索引 52
近乎多餘的索引 53
可能多餘的索引 53
新增一個索引的代價 54
回響時間 54
磁碟負載 55
磁碟空間 56
一些建議 57
練習 58
第5章 前瞻性的索引設計 59
發現不合適的索引 59
基本問題法(BQ) 59
注意 60
快速上限估算法(QUBE) 61
服務時間 62
排隊時間 62
基本概念:訪問 63
計算訪問次數 65
FETCH處理 66
主要訪問路徑的QUBE示例 67
使用滿足需求的成本最低的索引還是所能達到的最優索引:示例1 72
該事務的基本問題 73
對該事務上限的快速估算 73