查找很多个人id

时间:2016-09-15 19:16:12

标签: sql database postgresql

我有一个查询,这是我的程序的最后一步,它通过20-50k唯一ID的任何地方。我需要检索其中一些行数据。基表有大约1500万行。有没有一个很好的方法来解决这个问题?目前在Postgres中这样做是不够的。

我愿意使用除基于SQL的数据库以外的其他技术。表现就是最重要的。

 SELECT my_params FROM table WHERE id in (' + set_of_ids + ')
 ORDER BY score DESC LIMIT 100

2 个答案:

答案 0 :(得分:0)

在同一事务中创建一个临时表并将COPY值放入其中。

根据需要撒上索引并加入两个表。

Bon appetit!

答案 1 :(得分:0)

通过使用VALUES子句将其重写为JOIN,可以经常改进具有大型IN列表的查询的性能:

SELECT t.my_params 
FROM table t
JOIN (
  VALUES (1),(2),(3),(4),.....
) as x(id) on x.id = t.id;