Sql Ruby追随者查询
我们的Rails 3应用程序中有一个SQL查询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添加索引来加快查询速度(无论如何,外键都应该这样做),但这不会改变实际的查询 在查询中编写有一种更简洁
@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(叹气)是的,那比我的还要干净。不得不投你一票,安德鲁;)