我在MySQL中有一个具有这样的架构的topic_followers表
id, user_id, topic_id, creation_date, modified_date
我尝试使用下面的表达式来获取每个用户关注的主题列表:
TopicFollower.select("user_id, group_concat(topic_id) as topic_ids").group("user_id").find_in_batches { |group| ... }
但是,find_in_batches会自动在查询中添加“ ORDER BY topic_followers
。id
ASC”,并迫使我在选择子句中添加“ id”,这再次与group子句冲突。有什么建议可以与组进行批处理请求吗?
另一个相关问题,何时开始批量处理请求是否有经验法则?决策过程如何?
答案 0 :(得分:0)
TopicFollower.find_in_batches(batch_size: 300) do |objects|
objects.group_by { |object| object&.user_id}
end