更新时间:2025-01-10 GMT+08:00
分享

通过session设置

参数说明

session中NDP功能,默认为关闭状态,通过设置ndp_mode进行开启。

  • 当ndp_mode=off时,表示关闭NDP。
  • 当ndp_mode=on时,表示开启NDP。
  • 当ndp_mode=replica_on时,表示在只读节点开启NDP,主机不生效。

    当前NDP特性默认对大规格实例生效(16U及以上),小规格实例(8U及以下)不支持用户侧开启,如有需要可联系客服调整参数“innodb_ndp_max_threads”开启NDP。

在sql语句中执行开启或关闭NDP的语句。ndp的参数设置后,直到此会话结束或设置新的ndp参数值,否则一直处于此ndp有效期内。

语句是否会执行NDP操作,可以通过explain查看该语句是否使用NDP。在explain中的Extra中显示了NDP的下推执行计划,更具体的来说,NDP的执行计划通常以Using pushed NDP 为开头,后续内容说明了执行的NDP类型:过滤条件表达式(condition)、列裁剪(columns)或者是聚合(aggregate)被下推。

  • Using pushed NDP condition,后续括号中的内容显示了被下推的过滤条件表达式。通常格式为(‘数据库名’,‘表名’,‘列名’ 谓词条件)。
  • Using pushed NDP columns,显示NDP进行了列裁剪操作。
  • Using pushed NDP aggregate,显示了NDP进行了聚合操作。

通过下面的示例中,可以发现当ndp_mode=ON时,表LINEITEM的条件l_receiptdate >= date '2021-8-30' 被下推到了存储层。

开启NDP

mysql> set ndp_mode=on;

下面的例子分别显示NDP执行类型:过滤条件表达式(condition)、列裁剪(columns)或者是聚合(aggregate)被下推:

  • 过滤条件表达式下推(Using pushed NDP condition)

  • 列裁剪(Using pushed NDP columns)

  • 聚合下推(Using pushed NDP aggregate)

关闭NDP

mysql> set ndp_mode=off;

相关文档