MERGE_RESULT控制计算节点对聚合函数的结果是否进行合并。当该值设置为1时,计算节点将合并聚合函数的结果;当该值设置为0值,计算节点将不合并聚合函数的结果。
默认情况下,MERGE_RESULT值为1。
MERGE_RESULT=0时,含有聚合函数的SQL语句,计算节点将不合并结果集,每个数据节点的查询结果单独返回:
mysql> selectcount() from customer;
±-----------+
| COUNT() |
±-----------+
| 23 |
| 11 |
| 13 |
| 53 |
±-----------+
4 rows in set (0.00sec)
SET MERGE_RESULT=0 和SET SHOW_DNID=1,可用于统计业务表在各个数据节点上的分布情况:
mysql> setMERGE_RESULT=0;
mysql> setshow_dnid=1;
mysql> selectcount() from customer;
±-----------±-----+
| COUNT() | DNID |
±-----------±-----+
| 13 | 12 |
| 11 | 15 |
| 53 | 13 |
| 23 | 14 |
±-----------±-----+
4 rows in set (0.00sec)
结果集中的DNID列显示了每个数据节点的唯一标识ID。结果中,非常直观的显示了customer表在各个数据节点上的实际数据量。
MERGE_RESULT=1时,含有聚合函数的SQL语句,计算节点将所有数据节点的结果按SQL语义返回查询结果:
mysql> setshow_dnid=0;
mysql> setMERGE_RESULT=1;
mysql> selectcount() from customer;
±-----------+
| COUNT() |
±-----------+
| 100 |
±-----------+
1 row in set (0.00sec)