ruby-on-rails - 避免在 ActiveRecord 中显示字段

标签 ruby-on-rails activerecord

有什么方法可以防止 ActiveRecord 在不需要时向数据库发出 SHOW FIELDS 信息?
我正在研究数据库性能关键应用程序,只是注意到在一个典型的查询中,我的 SELECT 需要 0.5 毫秒,而相关的 SHOW FIELDS 需要 2 毫秒——长 4 倍!更重要的是,它不需要,因为我已经指定了我想要检索的唯一列:UsersAddress.find(:all, :conditions => {:user_id => 1}, :select => :address_id)

UsersAddress Load (0.5ms) SELECT address_id FROM users_addresses WHERE (users_addresses.user_id = 1)

UsersAddress Columns (2.1ms) SHOW FIELDS FROM users_addresses


当然,这只会在每次第一次触摸某个表时发生一次,但它不应该是完全可以避免的吗?首先,该信息已经在我的架构中。第二,我不需要。
任何想法如何优化它,以便 Rails 不会运行 SHOW FIELDS,除非它真的需要它?
谢谢!

最佳答案

在生产模式下,它只会在启动服务器后加载一次(不是每个请求)。

在开发模式下,它会在每个请求上加载(因为它是开发模式,并且几乎每个请求都会重新启动所有内容)

所以你不必在生产模式下担心它。

关于ruby-on-rails - 避免在 ActiveRecord 中显示字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1940654/

相关文章:

mysql - 使用 JOIN 时 ActiveRecord 查询中 ORDER 的动态方向

ruby-on-rails - 如何创建具有多个复杂关联/连接的 Rails 模型?

javascript - 带 rails 的自定义国家/州下拉菜单

ruby-on-rails - 在 Rails/ActiveRecord 列名中使用问号字符

sql - 在数据库中清晰地表示电子商务产品和变体

ruby-on-rails - 使用哈希语法的 Rails 作用域

Rails Bootstrap 中简单表单的 CSS 样式

ruby-on-rails - Ruby/Rails 命名约定

ruby - 使用 ActiveRecord 连接到未知数量的数据库

ruby-on-rails - rails : how do you access belongs_to fields in a view?