在Rails中User.select('*')与User.all之间是否存在差异

时间:2017-08-21 13:47:41

标签: mysql ruby-on-rails

Rails中的以下活动记录查询之间是否存在显着差异:

User.select('*')

User.all

主要是在DB,结果和性能方面的负载?

更新: 根据MrYoshiji的回答,最重要的区别在于 User.select('*')返回活动记录结果集,而User.all返回项目数组。如果您需要内置的活动记录方法,则非常重要。

1 个答案:

答案 0 :(得分:1)

没有区别。生成的SQL查询几乎相同。

在Postgres中,使用User.select('*')您将获得SELECT * FROM users的查询。 使用User.all,您将获得SELECT users.* FROM users的查询。

不知道MySQL究竟会发生什么,但我想它也是一样。