易學筆記-系統分析師考試-第5章 資料庫系統/5.6 分散式資料庫系統/5.6.3 分散式資料庫查詢優化
阿新 • • 發佈:2018-11-25
- 查詢優化對比
- 集中式資料庫:主要考慮CPU和I/O代價
- 分散式資料庫:除了考慮CPU和I/O代價,還要考慮通訊代價
- 分散式查詢分類
- 區域性查詢:類似於集中式資料庫查詢,可用集中式資料庫查詢方法優化
- 遠端查詢:使用者查詢只涉及到網路中單個場地的資料, 選擇距離應用場地最近的副本,其餘就類似於集中式資料庫查詢,選擇
- 全域性查詢:使用者查詢涉及到多個場地的資料,具體優化技術比較複雜,見下面說明
- 全域性查詢優化
- 全域性查詢樹的變換
- 用片段查詢替換全域性關係
- 合併公共子查詢
- 消除空關係和冗餘度
- 移去無用的垂直葉片
- 舉例
- 副本選擇和多副本的更新策略
- 副本選擇原則
- 儘可能提高訪問的區域性性,減少遠距離訪問
- 儘可能減少通訊開銷,減少大資料量的傳輸
- 考慮節點的負載平衡
- 副本更新策略
- 在事務提交前更新全部副本,只要一個副本沒更新則事務失敗
- 立即更新所用可用副本,對於失效副本等恢復後再更新
- 主副本法
- 指定一個副本為主副本,事務提交時先更新主副本,其它的副本在事務提交後再由主副本統一更新
- 缺點:主副本和其它副本可能存在讀不一致問題,可以通過設計版本號解決,如果副本的版本號與主副本版本號不一致,則改為讀主副本或者等待更新後再讀
- 快照法
- 副本選擇原則
- 查詢樹的分解
- 半連線與直接連線
- 半連線:在做連線時,不需要把整個關係或者片段送到對方,只需要傳送與連線相關的元組即可,目的是減少節點之前的資料傳輸量和運算量,缺點是增加了連線次數
- 舉例:
- 直接連線
- 巢狀迴圈法
- 排序歸併法
- 全送與按需取數兩種傳輸方式
- 半連線:在做連線時,不需要把整個關係或者片段送到對方,只需要傳送與連線相關的元組即可,目的是減少節點之前的資料傳輸量和運算量,缺點是增加了連線次數