Når jeg kører denne i mysql: update MEMBERS set antal=antal-1 where NAME='hans'
Så kan det tage op til 10 sek. før den er færdig, hvilket er aaalt for lang tid. jeg skriver specifikt hvad den skal gøre, og forstår derfor ikke hvorfor den tager så lang tid om det.
Ved ikke hvor meget den fylder, men den har somsagt ca. 1400 records og 50 felter. Jeg har tabeller der er langt større, så jeg tror ikke der er størrelsen.
Desuden bruges tabellen til en del af mit forum, og der er den ganske hurtig. Det er dorfor jeg ikke forstår, at den skal tage så lang tid om den ene kørsel.
måske laver du (MySQL) et krydsprodukt med 1400*1400 > 1.5 millioner rækker prøv at lave følgende forespørgsler: select id, antal from members where name = 'hans' for hvert hit opdater: update MEMBERS set antal=antal-1 where id = $id
hvis det tager kortere tid, så er det nok fordi MySQL starter med at lave et krydsprodukt af hele tabellen
Mfalck Kan explain og descibe ikke kun bruges på SELECT? Den giver fejl ved update
Kennie
Kan du være lidt mere specifik om hvordan jeg skal køre dem. "for hver hit opdaterer" - eksempel please :)?
hvad gør $-tegnet?
btw, så kørte jeg den et par gange igen for at teste: update MEMBERS set antal=antal-1 where NAME='hans' det tog flere gange omkring 45 sek. - der er lang tid
pseudokode: 2d-array = select id, antal from members where name = 'hans' for each ($i,$antal) in 2d-array update MEMBERS set antal=$antal-1 where id = $id end for
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.