我在heroku上运行我的应用程序。它是一个数据库密集型应用程序,使用大约150个表。因此它很慢。
我已经配置了newrelic来扩展它并找出问题所在。 然后我开始知道rails正在为每个使用过的模型触发一个额外的查询,以便在每个请求中加载它的模式。
例如
SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
FROM pg_attribute a LEFT JOIN pg_attrdef d
ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attrelid = '"sub_regions"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
有什么办法,我可以阻止rails在每次请求时加载模型的架构吗?
任何帮助都将受到高度赞赏。
由于
答案 0 :(得分:2)
你可以在production.rb文件中检查config.cache_classes = true吗?
答案 1 :(得分:0)
当然,您可以使用ActiveRecord的select
选择要加载的列。
参见段2.5 Selecting Specific Fields
,here。