ActiveRecord делает безумные номера ПОКАЗАТЬ ПОЛЯ - PullRequest
1 голос
/ 23 февраля 2012

Согласно Innotop и Cacti, мой сервер баз данных обрабатывает примерно в 8 раз больше SHOW FIELDS операторов, чем SELECT или любой другой производительный запрос.Я использую Rails 3.0, поэтому он должен кэшировать столбцы после их загрузки.Я видел сообщения о том, что MySQL требует временную таблицу для каждого SHOW FIELDS запроса, и мои данные мониторинга это подтверждают.

Правда, я использую ActiveRecord / Rails в нестандартной ситуации, которая включает запускмножество (~ 400) процессов на 100-200 компьютерах, каждый из которых загружает всю среду Rails.Эти процессы выполняются в течение по крайней мере нескольких минут, возможно, более 24 часов, делая короткие интервалы работы с базой данных каждые несколько минут.Обратите внимание, что эти процессы не используют обычный цикл запросов / ответов HTTP.

Есть ли способ избежать этого?У нас есть config.cache_classes = true в нашем config/environments/production.rb файле.Я на самом деле сталкиваюсь с проблемами масштабирования сервера баз данных, и я думаю, что эта проблема является основным фактором.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...