高凡  发表于 2017-9-24 14:26 显示全部楼层 楼主
使用hint达到如下两个效果:
(1)让集群的各个节点并行执行语句。
(2)用这个hint节点不必等到全部的语句执行完成,就会把已经执行好的结果集先返回给集群,
集群同样立刻返回给客户。这样在客户端很快就能看得部分结果集,改善用户体验。

举例如下:
select  a,b,c  from td where a = 5 limit 100;
hash列不是a,语句顺序在节点上执行,没有并行。
问题分析:
查询没有聚和函数,单表条件a=5不是hash列,只有简单limit。
问题解决:
使用first_rows hint
进入集群客户端,
gccli -uroot –c –q
使用hint,sql如下。
select /*+first_rows(100) */ a,b,c  from td where a = 5 limit 100;
注意:
请加 -c 参数,否则hint 也就是  /*+ … */ 会直接被客户端忽略,不会发到server端.
请加 -q 参数,否则sqlcli中不起作用。
说明:在studio中,查询会变快,但是没有gccli中那种马上就能看到结果集的效果


您需要登录后才可以回帖 登录 | 立即注册