У меня есть этот запрос:
$start = 0; $number_of_posts = 10; $sql = $db -> prepare(" SELECT U.username, U.offer_photo, F.activities, A.id_offer, A.offer, A.role, A.content, A.date_post, A.limit, B.type_offer, C.local FROM type_offer B, local C, offer A INNER JOIN users U ON U.id_user = A.company_users_id_user1 INNER JOIN company F ON F.users_id_user = A.company_users_id_user1 WHERE state = 0 AND A.type_offer_id_type_offer = B.id_type_offer AND A.local_id_local = C.id_local ORDER BY date_post DESC LIMIT ?, ? "); $sql -> bind_param('ii',$start, $number_of_posts); $sql -> execute(); $sql -> bind_result($username, $offer_photo, $actividades, $id_oferta, $oferta, $cargo, $conteudo, $data_post, $data_limite, $tipo_oferta, $local); //problem here $sql->fetch(); $sql-close;
И у меня есть memory_limit: 256M
в phpinfo (); Однако у меня все еще проблема с памятью. Я уже пробовал этот код без успеха:
set_time_limit(0); ini_set('memory_limit', '2000M');
Поэтому мой вопрос: можно ли оптимизировать запрос или как увеличить память? У меня нет доступа к php.ini, но я думаю, что 256 МБ должно быть достаточно, поэтому, возможно, проблема в запросе.
Является ли u.offer_photo полем blob? Если это так, я бы предложил переписать логику, чтобы вы не извлекали данные blob, пока вы ее не отобразите.
Даже если вы можете обойти ограничение памяти, увеличив выделение, анти-социальное использование чрезмерной памяти и хрупкость в том, что увеличение размера вашей базы данных в будущем, скорее всего, нарушит систему.