Ruby 走吧,抓狂。使用数组查询的实际限制是什么

Ruby 走吧,抓狂。使用数组查询的实际限制是什么,ruby,arrays,ruby-on-rails-3,rails-postgresql,Ruby,Arrays,Ruby On Rails 3,Rails Postgresql,我经常使用.pluck(:id)来获取一组记录id(之前使用map)。这通常是为了获得一组相关的模型记录(例如,,:人们有许多:分数,如:评估) 假设我有10000人,但是一个关于人的查询将其限制为1000人 people_ids = people.pluck(:id) #people a relation/scoped scores = Score.where(:assessed_type => 'People', :assessed_id => people_ids) 分数查询

我经常使用
.pluck(:id)
来获取一组记录id(之前使用
map
)。这通常是为了获得一组相关的模型记录(例如,,:人们有许多:分数,如:评估)

假设我有10000人,但是一个关于人的查询将其限制为1000人

people_ids = people.pluck(:id) #people a relation/scoped
scores = Score.where(:assessed_type => 'People', :assessed_id => people_ids)
分数查询会有更多的内容,但我的基本问题是使用一个数组(比如1000个ID)进行查询,这是个坏主意吗

我应该指出,过滤后的分数查询将用于获取一组新的人员。这是对人的过滤


我的测试数据库中只有几百条记录,这很好——但一定会有psql或Rails崩溃的时候。在生产中,我看不到超过1000个ID,因为在使用此评分选项之前,用户会自动进行筛选。

您是否可以将逻辑留在数据库中,而改用联接或子查询来避免这个问题?我没有意识到子查询被添加到rails 3中。我想我使用了.pluck(:id)来模拟子查询。由于这是一个多态关系,我花了一点时间才理解它,但最终只得到了一个简单的select子句<代码>分数=分数。其中(:assessed_type=>People',:assessed_id=>People.select(:id))。其中(…分数查询的其余部分)成本略低。谢谢