2013-06-13 2 views
5

Я пытаюсь вытащить данные из массива в представление, чтобы сформировать диаграмму. Массив хранится в поле базы данных и очень велик. Массив содержит около 70k + меньших массивов, которые выглядят так, [1234567890, 5]. Каждый раз, когда я пытаюсь отобразить данные в представлении, он отключается. Он никогда не загружает полный массив, чтобы страница не отображалась. Ошибок нет. Какие-нибудь идеи о том, что может быть причиной этого?Большой массив в базе данных не загружается в виде рельсов

Я рубиновый 2.0.0-P195, Rails 3.2.13, Postgres 9.2

+3

Возможно, пришло время вернуться к вашей схеме. Массив массивных массивов 70k + цепляется от неправильного дизайна. –

+0

Что вы отрезаете? он не загружает значение из db? – usha

+0

Он загружает значение из db только не для всех. Это сокращает примерно десятую часть пути. – user2272408

ответ

0

Исправлено. Это не был лимит данных или проблема Postgres. Это была проблема разрешения этих конфигурационных папок Nginx:

client_body_temp

fastcgi_temp

proxy_temp

Я создал эти папки в новом месте и настроен Nginx, чтобы указать на них. Затем дал нашему пользователю nginx доступ к этим папкам, и теперь все работает правильно.

1

Это довольно странно проблема. Это может быть что-то время во время выборки и просто возврат части данных, в зависимости от того, где это время.

Что бы проверить:

  • Как использование памяти делает? Улучшается ли результат, когда я добавляю ram?
  • Всегда ли он обрезается в одной точке?
  • Получаете ли вы данные в пакетном режиме (find_each)? Попробуйте сыграть с размером партии.
  • Можно ли улучшить сам запрос?
  • Если бревна Рельсы отлично, попробуйте посмотреть на Nginx (или что вы используете)

Если все параметры обязательно попробуйте загрузить этот асинхронно партии, выполнив несколько вызовов AJAX.

Смежные вопросы