2012-03-05 3 views
1

Когда вы получаете unset() результат mysql, освобождает ли он память, например mysql_free_result()?Unset mysql result

+2

Вы можете попробовать это сами: http://php.net/manual/en/function.memory-get-usage.php – SeanJA

ответ

4

unset() очищает указатель от результата на стороне php, но не делает ничего, на что он указывает. Результат mysql_query() - это просто числовой идентификатор, чтобы MySQL знал, к какому результату вы обращаетесь для таких функций, как mysql_fetch_array() и его спутников. Вам нужно использовать mysql_free_result(), чтобы сообщить MySQL, что вы закончили с этим результатом; вы также можете также отключить переменную php, но, поскольку это всего лишь resource, время, затрачиваемое на отмену, может не стоить того, что вы сохранили, от его снятия.

+0

Спасибо. Я хорошо знаю, какой результат. Вопрос только в том, что PHP достаточно умен, чтобы удалить любую связанную память (PHP часто делает такие предположения). Я взял совет SeanJA, и на самом деле это не так. – dtbarne

+0

Не хотел намекать на то, что вы этого не сделали, просто уточните для любого, кто встретит этот вопрос в будущем. В конце концов, это сайт Q & A :) – Tim