续集gem + postgres性能处理大集合同时与小集合

时间:2018-02-15 00:30:54

标签: ruby postgresql sequel

我有一个大约300万行的数据库(四列或五列,整数和字符串)。我想知道做什么更为理想:

A)在整数列上使用DISTINCT,然后使用.map(:some_column)获取所有唯一值:some_column

B)与上面相同,但在每次调用时使用.limit(100),并在每100行中移动,执行每组100行需要完成的操作。

它有所作为吗?

1 个答案:

答案 0 :(得分:1)

取决于300万行中有多少唯一值。如果只有10,000个唯一值,那么map(:some_column)就可以了。如果有300万个独特的价值观,那将会很痛苦。你肯定想避免限制/抵消方法。对于大量唯一值的最快方法可能是使用sequel_pg中的流支持,或者更高速度下拉一个级别并直接使用ruby-pg驱动程序(也在那里流式传输)。