保序场景
无 order by 操作符,仅仅有 limit 的场景。
order by 字段存在重复值,仅仅对输出结果部分字段进行排序。
子查询中包含排序,但是外层查询中未进行排序。
使用说明
默认开启全局分页保序功能
注意:
因为分页保序功能会默认对查询的输出结果添加隐式排序,所以输出结果集较大的场景下会导致性能损耗。建议在 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;