云数据库 MySQL 分页保序功能

分页保序功能是只读分析引擎在并行执行数据查询时,因 order by 字段存在重复值导致分页查询结果不稳定的解决方法。这里说明如何使用分页保序功能。详细的功能介绍,请参考 分页保序能力。

相关产品
云数据库 MySQL 产品页,含版本规格、价格与购买入口。

一、保序场景

·无 order by 操作符,仅仅有 limit 的场景。

·order by 字段存在重复值的场景。

·子查询中包含排序,但是外层查询中未进行排序的场景。

二、使用说明

·默认开启全局分页保序功能

使用 设置实例参数 功能,修改只读分析引擎的参数“libra_preserve_order_for_pagination”。此参数默认值为 OFF,修改为 ON 则对整实例开启了分页保序能力。

注意:因为分页保序功能会默认对查询的输出结果添加隐式排序,所以输出结果集较大的场景下会导致性能损耗。建议在 SQL 执行中对需要此功能的 SQL 指定显式开启分页保序功能。

·在 session 会话中开启分页保序功能

在访问至只读分析引擎后,可显示指定会话级的参数设置。在当前会话开启/关闭分页保序功能。

mysql> set libra_preserve_order_for_pagination=on; mysql> set libra_preserve_order_for_pagination=off;

·在 SQL 执行中指定使用分页保序功能

在 SQL 执行的时候,添加 hint 语法显式指定此 SQL 使用分页保序能力。

注意:如果使用 mysql 客户端访问只读分析引擎,请添加 -c 参数。否则 SQL 中显示指定分页保序无法生效。

mysql> select /*+ SET_VAR(libra_preserve_order_for_pagination=ON) */ t1.c1, t1.c2 from t1, t2 where t1.c1 = t2.c1 order by t1.c1 limit 10,10;

赞 (0)
上一篇 4天前
下一篇 4天前