Mysql 查询查找的优点:在从数据库提取对象期间选择选项

Mysql 查询查找的优点:在从数据库提取对象期间选择选项,mysql,ruby,ruby-on-rails-3,Mysql,Ruby,Ruby On Rails 3,一件简单的事。如果您只需要模型的几个属性,那么合理的方法是否是使用方法查找中的:选择选项: @users = User.find (:all, :select => "username, email, registered_on", :conditions => ["username like?", "A%"]) 它能从数据库查询的速度中获益吗?它当然能加快从数据库检索数据的速度,因为通过网络传递的信

一件简单的事。如果您只需要模型的几个属性,那么合理的方法是否是使用方法查找中的:选择选项:

@users = User.find (:all, 
                    :select => "username, email, registered_on",
                    :conditions => ["username like?", "A%"])

它能从数据库查询的速度中获益吗?

它当然能加快从数据库检索数据的速度,因为通过网络传递的信息更少。查询本身也更快


但如果这样做,对象的某些属性将被取消初始化(那些您没有检索到的属性)。这可能会让您有一天感到惊讶(如果您忘记了这一点)。

因此,从数据库中更快地提取数据是否值得,这可能会在该对象的未来问题中出现?你怎么想?你应该自己决定。我个人不经常使用这个功能。“查询本身也更快”需要一些理由,你不觉得吗?如果每行的字节都存储在一起,那么只选择几列而不是全部列可能会更慢。但是,我们同意,这一点必须加以衡量和验证(或反驳)。