Sql Ruby追随者查询

Sql Ruby追随者查询,sql,ruby-on-rails,Sql,Ruby On Rails,我们的Rails 3应用程序中有一个SQL查询 @followers返回当前用户后面的用户ID数组 @followers = current_user.following @feed_items = Micropost.where("belongs_to_id IN (?)", @followers) 有没有更有效的方法来执行此查询?您的查询无法再进行优化了。可以通过向属于\u-to\u-id添加索引来加快查询速度(无论如何,外键都应该这样做),但这不会改变实际的查询 在查询中编写有一种更简洁

我们的Rails 3应用程序中有一个SQL查询

@followers
返回当前用户后面的用户ID数组

@followers = current_user.following
@feed_items = Micropost.where("belongs_to_id IN (?)", @followers)

有没有更有效的方法来执行此查询?

您的查询无法再进行优化了。可以通过向
属于\u-to\u-id
添加索引来加快查询速度(无论如何,外键都应该这样做),但这不会改变实际的查询

在查询中编写
有一种更简洁的方法,不过:

Micropost.where(:belongs_to_id => @followers)

其中
@followers
所属\u-to\u-id
的一个值数组。您所拥有的查询实际上无法再优化了。可以通过向
属于\u-to\u-id
添加索引来加快查询速度(无论如何,外键都应该这样做),但这不会改变实际的查询

查询中编写
有一种更简洁的方法,不过:

Micropost.where(:belongs_to_id => @followers)
其中
@followers
所属\u id

的一个值数组,我觉得不错

但是,如果要在代码中查找真正的最小字符数,可以更改:

microspost.where(“属于(?),@followers)


microspost.where(“属于”\u-to\u-id=?,@followers)

读起来容易一点

Rails将看到数组并在
中执行

ruby语言的主要目标始终是可读性,因此很少有改进

至于查询效率低下,您应该检查该字段上的索引。
对于每个数据库,它们往往更为具体—您只指定了通用sql。在你的问题中。

我觉得不错

但是,如果要在代码中查找真正的最小字符数,可以更改:

microspost.where(“属于(?),@followers)


microspost.where(“属于”\u-to\u-id=?,@followers)

读起来容易一点

Rails将看到数组并在
中执行

ruby语言的主要目标始终是可读性,因此很少有改进

至于查询效率低下,您应该检查该字段上的索引。

对于每个数据库,它们往往更为具体—您只指定了通用sql。在你的问题中。

出于好奇,为什么这样效率低或不合适?未来的可伸缩性问题是查询速度,出于好奇,为什么这样效率低或不合适?未来的可伸缩性问题是查询速度+1(叹气)是的,甚至比我的更干净。不得不投你一票,安德鲁;)+1(叹气)是的,那比我的还要干净。不得不投你一票,安德鲁;)