sql查詢優化與volcano Optimizer

2021-10-08 01:52:57 字數 521 閱讀 3018

一、多個表根據共同點整合出特定列,通過只讀取此列,高效讀取,優化sql查詢

關係代數進行查詢優化的要點:

sql 查詢可以表示成關係代數

關係代數作為一種樹形的結構,實質上也可以表示查詢的物理實現方案流程

關係代數可以進行區域性的等價變換,變換前後返回的結果不變但執行的成本不同

通過尋找執行成本最低的關係代數表示,我們就可以將乙個 sql 查詢優化成更為高效的方案

實現關係代數的化簡和優化,依賴於資料系統的物理性質,如

儲存裝置的特性(順序讀效能如何?隨機讀效能如何?吞吐量如何)

儲存內容的格式和排列(列式儲存?行式儲存?是否以某列進行分片?)

包含的元資料和預計算結果(是否存在索引?是否存在物化檢視?)

聚合和計算單元的特性(單執行緒?併發計算?分布式計算?特殊加速硬體?)

內部變換,但外部介面需要保持一致性

基於成本的優化演算法volcano optimizer

動態規劃演算法與等價集合

廣度優先搜尋與啟發式演算法

查詢優化 SQL優化

查詢優化注意點 代表查詢速度比較 1 所有查詢必須注意 的使用必要性 cout 1 cout 2 字段 主鍵索引 字段 普通索引 字段 沒有索引 3 乙個字段 多個字段 欄位多越慢 4 大於10000和大於10001的區別 後者大於前者 5 列沒別名 列 有別名6 兩個條件,where時應該將符合資...

查詢優化 sql

查詢1 declare d datetime set d getdate select top 1000 from product where contains name,男上裝 or contains text,男上裝 select datediff ms,d,getdate set d getd...

優化sql查詢

如何寫出高效能的sql語句 執行計畫是資料庫根據sql語句和相關表的統計資訊坐出的乙個查詢方案,這個方案是由查詢優化器自動分析產生的,比如一條sql語句如果用來從乙個n條記錄中查詢其中一條,那查詢優化器會選擇 索引掃瞄 方式。該錶如果使用了歸檔,那查詢優化器就會改變方案,採用 全表掃瞄 方式。執行計...