小编use*_*692的帖子

选择使用 Postgres 中的限制进行更新

我需要将记录的处理分发到不同的机器上。

在每台机器(节点)上,我每分钟运行以下查询:

select * 
from RECORDS_TO_PROCESS
limit MAX_PER_MACHINE_RUN
for update
Run Code Online (Sandbox Code Playgroud)

假设我有 1000 条记录要处理,10 台机器(节点),每台机器希望在一分钟内处理 100 条记录(最多)。

R1
R2
R3
...
R101
R102
R103
...
R201
R202
R203
...
Run Code Online (Sandbox Code Playgroud)

我想要的只是让记录(R1-100)获取从节点1进行的查询,记录(R101-R200)从节点2进行的查询返回,等等。

这行得通吗?我们认为这能够分散负载吗?

假设事务隔离级别为默认级别(Read Comlated)

postgresql select for-loop

6
推荐指数
1
解决办法
3414
查看次数

使用“Union distinct”构造时保留子查询中的记录顺序

我想确保在使用 Union distinct 时保留子查询结果的顺序。请注意,在进行联合时,需要“union distinct”来过滤重复项。

例如:

select columnA1, columnA2 from tableA order by [columnA3] asc
union distinct
select columnB1, columnB2 from tableB
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我期望从子查询( select columnA1columnA2from tableAsort by [columnA3]asc)排序的记录首先出现(按asc排序返回columnA3),然后是来自tableB.

我假设我不能添加另一个虚拟列,因为这会使 union 不同而不起作用。所以,这行不通:

select column1, column2 from 
 ( select column1, column2, 1 as ORD from tableA order by [columnA3] asc
 union distinct
 select column1, column2, 2 as ORD from tableB 
 ) order by ORD
Run Code Online (Sandbox Code Playgroud)

mysql union sql-order-by

1
推荐指数
1
解决办法
2397
查看次数

标签 统计

for-loop ×1

mysql ×1

postgresql ×1

select ×1

sql-order-by ×1

union ×1