Я хотел бы знать, есть ли проблемы (плохо для сервера) при использовании ini_set('memory_limit', '-1')
в ряде случаев?
Причина, по которой мне нужно это знать, заключается в том, что я сейчас работаю в проекте, где использование запросов на соединение высоко. Мы выбираем только необходимые данные, чтобы избежать максимальной загрузки, но в некоторых ситуациях, когда данные превышают 20000 записей, выполнение прекращается & шоу 500 (Internal Server Error)
,
Я знаю, что ошибка 500 может быть причиной многих других проблем, поэтому я проверил ее & нашел причину из-за превышения лимита памяти выполнения PHP (256M). Когда я установил ini_set('memory_limit', '-1')
в моем коде запрос выполнен правильно.
Вышеприведенное объяснение является просто ситуацией / сценарием, не нужно учитывать, что & Да, я согласен, что с помощью ini_set('memory_limit', '-1')
плохая практика Итак, мой вопрос ясно знать есть ли проблема при использовании ini_set (‘memory_limit’, ‘-1’) несколько раз на разных разделах проекта (например, разорвать вопросы или около того). Если да, то каковы они?
ini_set
установит параметр конфигурации во время выполнения скрипта и будет восстановлен в конце скрипта.
так ini_set
будет работать только на текущий процесс PHP. В следующий раз, когда поступит запрос, новый процесс php будет читать php.ini
первым получить memory_limit
и тогда вы можете использовать ini_set
установить значение -1.
ты можешь использовать ini_get
Проверять memory_limit
чтобы избежать установки memory_limit несколько раз, и проверьте возвращаемое значение ini_set
обеспечить успех.
с помощью ini_set('memory_limit', '-1')
плохая идея Попробуйте использовать нумерацию страниц, чтобы избежать выборки всех данных за раз.
Других решений пока нет …