Rails选择和选择

时间:2017-06-06 03:59:26

标签: ruby-on-rails ruby

我想知道pluckselect之间有什么区别。

基于以下代码,第一个代码比第二个快。但我不知道它是什么原因。

c_ids = [123, 456]

# Good
m_ids = GcMission.joins(:mission).where(character: c_ids).select(:mission_id)
QuestionMission.where(mission_id: m_ids).pluck(:question_id)

# Bad
m_ids = GcMission.joins(:mission).where(character: c_ids).pluck(:mission_id)
QuestionMission.where(mission_id: m_ids).pluck(:question_id)

更新

问题不同。

经过多次调查,

m_ids = GcMission.joins(:mission).where(character: c_ids).select(:mission_id)

QuestionSetMission.where(mission_id: mission_ids).pluck(:question_set_id)

上面的代码将执行延迟查询,它只会查询一次。

但坏人会做两次。

0 个答案:

没有答案