Това изтичане на памет би било проблем само ако убива скрипта с грешка "изчерпана памет". PHP с удоволствие ще събира всички неизползвани обекти/променливи сам, но колекторът няма да ритне, докато не трябва - събирането на боклука може да бъде много скъпа операция.
Нормално е да видите нарастване на използването на паметта, дори ако постоянно използвате повторно едни и същи обекти/променливи - едва когато използването на паметта надхвърли определено ниво, колекторът ще задейства и почисти къщата.
Подозирам, че бихте могли да накарате нещата да работят много по-бързо, ако групирате потребителски идентификатори в групи и издавате по-малко актуализации, променяйки повече записи с всеки. напр. направете следното:
UPDATE user_roundscores SET ursUpdDate=NOW() WHERE ursUserTeamIdFK IN (id1, id2, id3, id4, id5, etc...)
вместо да го правите с една актуализация на потребител. По-малко преходи през интерфейсния слой на DB и повече време на сървъра =по-бързо изпълнение.
Освен това, помислете за ефекта от разширяването на това до милиони потребители, както казвате в коментар. Изпълнението на милион отделни актуализации ще отнеме нетривиално време, така че NOW()
няма да бъде "константа". Ако са необходими 5 минути за пълното изпълнение, тогава ще получите голямо разнообразие от ursUpdDate
времеви печати. Може да помислите за кеширане на един NOW()
извикване на променлива от страна на сървъра и издаване на актуализации срещу тази променлива:
SELECT @cachednow :p NOW();
UPDATE .... SET ursUpDate = @cachednow WHERE ....;