Схема загрузки модели Rails3 по каждому запросу - PullRequest
2 голосов
/ 23 июня 2011

Я запускаю мое приложение на героку.Это приложение с интенсивным использованием базы данных и использует около 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загружать схему модели при каждом запросе?

Любая помощь будет высоко оценена.

Спасибо

Ответы [ 2 ]

2 голосов
/ 23 июня 2011

вы можете проверить, что config.cache_classes = true в файле production.rb?

0 голосов
/ 23 июня 2011

Конечно, вы можете выбрать, какие столбцы вы хотите загрузить с помощью ActiveRecord select.

См. Пункт 2.5 Selecting Specific Fields, здесь .

...