Недостаточно памяти в PHP - PullRequest
1 голос
/ 09 января 2012

У меня проблема с памятью в PHP.Мне необходимо получить огромный отчет, таблицу с большим количеством информации.

Эта информация также получается с помощью некоторых сложных функций, что означает, что она не может быть получена по запросу пользователя, поскольку ему / ей придется ждать около 5 минут для отображения информации.

Я кешировал результат, но по мере роста информации браузер просто зависал и ничего не показывал.Каковы возможные решения для этого?

Я думал о том, чтобы сохранить данные в mysql вместо кеша, а затем выполнить пару операций выбора, когда пользователь запрашивает информацию.Что вы думаете об этом решении?Любые другие лучшие варианты?

Обновление

Похоже, проблема не была понята, поэтому я добавлю больше деталей.

Поиск уже используется.Необходимо учитывать много моментов:

1) Сама информация должна быть рассчитана.У меня работает cron, который его собирает (занимает около 5 минут) и сохраняет его в кеше.Браузер просто выполняет рендеринг из кэша, а поиск выполняет поиск по этим кэшированным данным.Информация не может быть получена в режиме реального времени.2) Вот почему я думал о сохранении вычисленных результатов в MySQL, чтобы поиск мог выполнять поиск в таблице MySQL вместо поиска в кэшированных данных (что огромно и теперь невозможно обработать браузером).

Надеюсь, теперь проблема яснее!

Ответы [ 3 ]

2 голосов
/ 09 января 2012

Я думаю, что хранение данных в mysql - это хорошая идея, особенно если вы строите некоторые индексы для часто запрашиваемых столбцов данных, кэширование будет занимать большой объем памяти (это часто хранит данные в ОЗУ).

Еще одна вещь, которую вы должны рассмотретьпопробуйте просмотреть журналы сервера (доступ и ошибки), потому что вы можете найти там свое решение

и, наконец, надеетесь, что вы решите свою проблему

0 голосов
/ 09 января 2012

проверьте настройку php.ini для этого параметра

memory_limit = 512M

установите для него еще какое-то значение

0 голосов
/ 09 января 2012

Возможно, вам следует разбить вывод на страницы, если это возможно.Я думаю, что хранить данные в MySQL - не лучшая идея ...

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