Mycat2 Filter&Project&FieldTrimmer

2021-09-10 13:55 更新

Filter下推

Mycat2在對SQL編譯成生成邏輯關系表達式.Mycat2對它進行Filter下推規(guī)則處理,使Filter盡量下沉到TableScan之上,這樣就可以應用分區(qū)剪裁規(guī)則,減少掃描的物理表的數量,使SQL查詢具有水平擴展性.

Project下推

另外Project下推也是一個很重要的規(guī)則,它關系表達式中的作用是執(zhí)行投影與函數表達式計算.

  1. 當執(zhí)行的函數是session級別的函數,比如row_count,就不會下推該函數.
  2. Mycat2會對多個相鄰Project合拼.
  3. 把常用的函數下推到存儲節(jié)點運算,進一步減少Mycat的計算負擔.

FieldTrimmer列剪裁

一方面,僅僅依賴SQL編譯成邏輯關系表達式,以SQL語義生成Project是不足夠的,因為Mycat2會需要與后端存儲節(jié)點進行網絡通訊,如果沒用的字段的列過多,會導致多余的網絡損耗.另一方面,對于無法變成SQL的Project,會進一步編譯成執(zhí)行器,在算子之間交換數據,存在多余的列的值,也是會導致多余的內存占用,轉換計算問題.所以Mycat2在SQL重寫器中引入FieldTrimmer添加額外的Project算子剪裁列來減少不必要的性能損耗.

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號