[数据库基础]-- 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、参考

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