小编Jay*_*ane的帖子

重写大型IN子句的最佳性能是什么?

我使用go和gorm编写了一个API,它在我们的数据库上运行计算并返回结果.

我只是IN在使用聚合时达到了条件的参数限制.示例查询:

SELECT SUM(total_amount) from Table where user_id in(...70k parameters) group by user_id
Run Code Online (Sandbox Code Playgroud)

我当前的一个边缘案例有> 65535个用户ID,所以我的Postgres客户端抛出一个错误:

got 66037 parameters but PostgreSQL only supports 65535 parameters
Run Code Online (Sandbox Code Playgroud)

我不确定最好的办法是什么.一个将处理此边缘情况的大量参数,同时不影响我的典型用例.我是否对id进行分块并迭代多次查询将其存储在内存中,直到我拥有所需的所有数据?用ANY(VALUES)...

显然,从查询中我对Postgres的知识非常有限,所以任何帮助都会令人难以置信地受到赞赏.

sql postgresql go sql-in go-gorm

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

标签 统计

go ×1

go-gorm ×1

postgresql ×1

sql ×1

sql-in ×1