Когда вы получаете unset()
результат mysql, освобождает ли он память, например mysql_free_result()
?Unset mysql result
ответ
№ unset()
очищает указатель от результата на стороне php, но не делает ничего, на что он указывает. Результат mysql_query()
- это просто числовой идентификатор, чтобы MySQL знал, к какому результату вы обращаетесь для таких функций, как mysql_fetch_array()
и его спутников. Вам нужно использовать mysql_free_result()
, чтобы сообщить MySQL, что вы закончили с этим результатом; вы также можете также отключить переменную php, но, поскольку это всего лишь resource, время, затрачиваемое на отмену, может не стоить того, что вы сохранили, от его снятия.
Спасибо. Я хорошо знаю, какой результат. Вопрос только в том, что PHP достаточно умен, чтобы удалить любую связанную память (PHP часто делает такие предположения). Я взял совет SeanJA, и на самом деле это не так. – dtbarne
Не хотел намекать на то, что вы этого не сделали, просто уточните для любого, кто встретит этот вопрос в будущем. В конце концов, это сайт Q & A :) – Tim
Вы можете попробовать это сами: http://php.net/manual/en/function.memory-get-usage.php – SeanJA