Mysql
 sql >> база данни >  >> RDS >> Mysql

изтичане на памет в php скрипт

Това изтичане на памет би било проблем само ако убива скрипта с грешка "изчерпана памет". 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 ....;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преобразувайте колоната varchar към дата в mysql на ниво база данни

  2. Ускоряване на заявките GROUP BY, SUM и AVG

  3. Какво да направите, когато имате нужда от цели числа, по-големи от 20 цифри в mysql?

  4. Интеграция с друга система

  5. Оптимизиране ORDER BY