sql >> Database teknologi >  >> RDS >> Mysql

hukommelseslæk i php-script

Denne hukommelseslækage ville kun være et problem, hvis den dræber scriptet med en "hukommelse opbrugt" fejl. PHP vil gladeligt indsamle ubrugte genstande/variabler på egen hånd, men samleren vil ikke sparke, før det skal - affaldsindsamling kan være en meget dyr operation.

Det er normalt at se hukommelsesforbruget stige, selvom du konstant genbruger de samme objekter/variabler - det er ikke før hukommelsesforbruget overstiger et vist niveau, at samleren vil fyre op og rense huset.

Jeg formoder, at du kunne få tingene til at køre meget hurtigere, hvis du batchede bruger-ID'er i grupper og udstedte færre opdateringer, og ændrede flere poster med hver. for eksempel. gør følgende:

UPDATE user_roundscores SET ursUpdDate=NOW() WHERE ursUserTeamIdFK IN (id1, id2, id3, id4, id5, etc...)
 

i stedet for at gøre det én opdatering pr. bruger. Færre rundrejser gennem DB-grænsefladelaget og mere tid på serveren =hurtigere kørsel.

Overvej også virkningen af ​​nu at udvide dette til millioner af brugere, som du siger i en kommentar. En million individuelle opdateringer vil tage en ikke-triviel tid at køre, så NOW() vil ikke være en "konstant". Hvis det tager 5 minutter at køre hele kørslen, vil du få en bred vifte af ursUpdDate tidsstempler. Du vil måske overveje at cache en enkelt NOW() kald en variabel på serversiden og udsend opdateringerne mod denne variabel:

SELECT @cachednow :p NOW(); UPDATE .... SET ursUpDate = @cachednow WHERE ....;

  1. Mærkelige karakterer i mysql dbase

  2. Hvordan laver man MySQL + Substring? + udskifte?

  3. Fejl 1022 - Kan ikke skrive; dublet nøgle i tabel

  4. Sådan får du flere kolonner fra en kolonne, SQL