[數據庫基礎]-- CBO and RBO optimizers

1、前言

      CBO是 Cost-based optimizer ,RBO是 Rule-based optimizer 。

2、對比

  CBO RBO
定義 基於成本的優化 基於規則的優化
目的 爲每個SQL語句提供最便宜的執行計劃 RBO使用一組規則來確定如何執行查詢
支持 Spark sql、Hive、Presto、Mysql 、Oracle和SQL Server 幾乎所有都支持
實現難度 實現困難,以空間換時間 實現容易,但是以時間換空間

附1:Spark 的 TPC-DS 查詢性能測試對比

 

 

附2:Hive 的 TPC-DS 查詢性能測試對比

3、注意

Hive CBO   支持的版本:從 Hive-0.14     開始支持,開啓參數---->  hive.cbo.enable=true

Spark CBO 支持的版本:從 Spark -2.2.0 開始支持,開啓參數--->  spark.sql.cbo.enabled=true

 

4、參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章