判断当前数据库使用何种优化器由optimizer_mode初始化参数决定。该参数可能的取值为:first_rows_[1 | 100 | 1000] | first_rows | all_rows | choose | rule。具体解释如下:
- RULE为使用RBO优化器。
- CHOOSE则根据实际情况选择优化器。如果数据字典中包含被引用的表的统计数据,则使用CBO优化器,否则使用RBO优化器。
- ALL_ROWS为CBO优化器使用的第一种具体的优化方法,主要以数据的吞吐量为目标,尽可能使用最少的资源完成语句。
- FIRST_ROWS为优化器使用的第二种方法,重点是数据响应时间,快速查询出前几行数据。
- FIRST_ROWS_[1 | 100 | 1000]为优化器选择响应时间最小的执行计划,以迅速生成查询结果的前n行。
查看当前设置的优化器模式可使用命令:show parameter OPTIMIZER_MODE
。