暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

AntDB 数据库分布式功能-FQS增强4

tocata 2024-09-02
20
窗口函数
# 测试用表和数据请参加附录
# 单节点(绑定变量的):窗口函数
antdb=# prepare s_window_single(int) as SELECT *,row_number() over (order by province ) as idx FROM fqs_window_test WHERE id = $1;
PREPARE
antdb=# EXPLAIN (verbose) execute s_window_single(1);
                                                                     QUERY PLAN
-----------------------------------------------------------------------------------------------------------------------------------------------------
 Data Node Scan on "__REMOTE_FQS_QUERY__"  (cost=0.00..0.00 rows=0 width=0)
   Output: fqs_window_test.id, fqs_window_test.province, fqs_window_test.city, (row_number() OVER (?))
   Node expr: $1
   Remote query: SELECT id, province, city, row_number() OVER (ORDER BY province) AS idx FROM public.fqs_window_test fqs_window_test WHERE (id = $1)
(4 rows)


# 单节点(静态常量的):窗口函数
antdb=# EXPLAIN (verbose) SELECT *,row_number() over (order by province ) as idx FROM fqs_window_test WHERE id = 1;
                                                                     QUERY PLAN
----------------------------------------------------------------------------------------------------------------------------------------------------
 Data Node Scan on "__REMOTE_FQS_QUERY__"  (cost=0.00..0.00 rows=0 width=0)
   Output: fqs_window_test.id, fqs_window_test.province, fqs_window_test.city, (row_number() OVER (?))
   Node/s: DN2
   Remote query: SELECT id, province, city, row_number() OVER (ORDER BY province) AS idx FROM public.fqs_window_test fqs_window_test WHERE (id = 1)
(4 rows)
复制
delete 包含分片键
# 测试用表和数据请参加附录
# delete 里面包含分片键,且是动态绑定变量的
antdb=# prepare s12(int, int, int) as delete FROM fqs_bmsql_new_order WHERE no_w_id = $1 and no_d_id = $2 and no_o_id = $3;
PREPARE
antdb=# EXPLAIN (verbose) execute s12(1, 1, 1);
                                                               QUERY PLAN
-----------------------------------------------------------------------------------------------------------------------------------------
 Data Node Scan on "__REMOTE_FQS_QUERY__"  (cost=0.00..0.00 rows=0 width=0)
   Node expr: $1
   Remote query: DELETE FROM public.fqs_bmsql_new_order fqs_bmsql_new_order WHERE ((no_w_id = $1) AND (no_d_id = $2) AND (no_o_id = $3))
(3 rows)


# delete 里面包含分片键,且是静态常量的
antdb=# EXPLAIN (verbose) delete FROM fqs_bmsql_new_order WHERE no_w_id = 5 and no_d_id = 1 and no_o_id = 2;
                                                              QUERY PLAN
--------------------------------------------------------------------------------------------------------------------------------------
 Data Node Scan on "__REMOTE_FQS_QUERY__"  (cost=0.00..0.00 rows=0 width=0)
   Primary node/s: DN0
   Node/s: DN0
   Remote query: DELETE FROM public.fqs_bmsql_new_order fqs_bmsql_new_order WHERE ((no_w_id = 5) AND (no_d_id = 1) AND (no_o_id = 2))
(4 rows)
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论