Avatar billede nicocarlos Nybegynder
22. november 2006 - 16:36 Der er 17 kommentarer og
1 løsning

Optimering hvordan?

Hejsa.

Jeg ved ikke helt om dette er det rigtige sted at spørge, det hører måske til i servere eller php, men jeg tror nu at det er her problemet er.

Mit problem er at jeg har en database med 1000 brugere. og der vil jeg godt opdatere, et par felter hvert 10 minut, det gør jeg ved:

"update brugere set points=points+5 where aktiveret='Ja'"

Og et cronjob.

Men har fået af vide det er for cpu/ram krævende, så tænkte på om man på en eller anden måde kan optimere det eller gøre det mindre krævende.

PÅ forhånd tak
Avatar billede nicocarlos Nybegynder
22. november 2006 - 16:53 #1
Og er det smartest/hurtigst at jeg kun laver en update, hvis jeg nu skal opdatere mere end points, istedet for en for hver der skal opdateres?
Avatar billede nicocarlos Nybegynder
22. november 2006 - 16:58 #2
Har lige fået af vide det kræver mindre cpu/ram hvis jeg laver det i 1 thread, men det gør det samtidig også langsommere, hvad er bedst? :D
Avatar billede arne_v Ekspert
22. november 2006 - 17:06 #3
hvem siger at den UPDATE er for CPU/RAM krævvende ??
Avatar billede nicocarlos Nybegynder
22. november 2006 - 17:44 #4
min gamle host. Men jeg havde også mere end 1, skal man så slå dem sammen? eller holde dem hver for sig?

f.eks:

"update brugere set points=points+5 where aktiveret='Ja'"
"update brugere set days=days+1 where aktiveret='Ja'"
"update brugere set activity=activity+1 where aktiveret='Ja'"
Avatar billede nicocarlos Nybegynder
22. november 2006 - 17:44 #5
det må jo være fordi jeg kørte den på omkring 1000 brugere hvert 10 ende minut eller noget.
Avatar billede nicocarlos Nybegynder
22. november 2006 - 17:49 #6
ved du hvordan jeg kan finde ud af hvor lang tid den er om at køre en query? f.eks. fra php
Avatar billede arne_v Ekspert
22. november 2006 - 18:01 #7
"update brugere set points=points+5,days=days+1,activity=activity+1 where aktiveret='Ja'"
Avatar billede arne_v Ekspert
22. november 2006 - 18:01 #8
du kan vel tage tiden før og efter query of trække dem fra hinanden
Avatar billede nicocarlos Nybegynder
22. november 2006 - 18:26 #9
prøver jeg lige :D
Avatar billede nicocarlos Nybegynder
22. november 2006 - 21:14 #10
okay har lige tjekket men opdagede lige jeg havde en som så sådan her ud f.eks.

"update brugere set points=points+5 where aktiveret='Ja'"
"update brugere set days=days-1 where aktiveret='Nej'"

f.eks. hvordan kunne den laves til en?
Avatar billede nicocarlos Nybegynder
22. november 2006 - 21:20 #11
Skal nok lige smide lidt ekstra point i, hvis du vil have det, har også en hvor jeg henter info ud som måske kan laves smartere:

$bil="SELECT * from biler where name='Ferrari'";
$bil2=mysql_query($bil) or die("Error");
$bil3=mysql_fetch_array($bil2);
$skoda="SELECT * from biler where name='Skoda'";
$skoda2=mysql_query($skoda) or die("error");
$skoda3=mysql_fetch_array($skoda2);


Sådan henter jeg ud med de forskellige bil typer som hver indeholder noget information, jeg så viser med f.eks. $skoda3[pris], $skoda3[id] etc

det kan måske også gøres lidt smartere?
Avatar billede nicocarlos Nybegynder
22. november 2006 - 22:02 #12
men skal jo stadig kunne hente begge ting for både bil og skoda
Avatar billede arne_v Ekspert
23. november 2006 - 00:53 #13
en UPDATE med forskellige felter i SET og forskellige værdier i WHERE er nok svær at kombinere
Avatar billede arne_v Ekspert
23. november 2006 - 00:53 #14
kan du ikke bare lave en SELECT som henter både ferrari og skoda - og hente data
ud af de 2 rækker ?
Avatar billede nicocarlos Nybegynder
23. november 2006 - 19:14 #15
hvordan det? det er lidt det jeg ikke ved hvordan man gør i 1 select
Avatar billede arne_v Ekspert
23. november 2006 - 19:52 #16
du laver en SELECT som returnerer begge rækker

og så læser du 2 rækker evt. N rækker i en while løkke
Avatar billede nicocarlos Nybegynder
03. december 2006 - 22:30 #17
okay tak smid et svar det virker :D
Avatar billede arne_v Ekspert
31. december 2006 - 20:53 #18
kommer her
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester