Salut,

am un program care face ip accounting, insa cine l-a scris nu s-a gandit 
si la optimizarea query-urilor pt. mySQL.

uitandu-ma prin codul sursa, pt. a face update, programul intai face un 
select in baza de date, ia valorile care sunt pentru input si output, la 
care adauga traficul facut de la ultima actualizare, apoi face:

UPDATE traffic SET input=XXXXXXX, output=YYYYY where IP='un.ip';

stiu ca in mysql se poate face direct update de genul:
UPDATE traffic SET input=XXXXXXX+1223, output=YYYYY+1231 where IP='un.ip';

insa programul face contorizarea pe ora+data, si nu stiu cum sa ma prind 
ca a trecut sau nu o ora de cand a fost facut ultimul update, astfel incat 
sa pot sa bag

 INSERT into traffic values(....);

si apoi sa fac update-uri pentru inca o ora samd.

m-a interesa o solutie cat mai optima pentru a face update la baza de 
date, si dupa nevoie si insert astfel incat numarul de query-uri sa fie 
cat mai mic.

Pentru o clasa C, programul respectiv face ~ 512query-uri + inca vreo 256 
aditionale sa vada daca trebuie sa faca INSERT sau UPDATE.

pe masina pe care ruleaza mysql-ul un update dureaza cam 0.30-0.60 secunde 
... iar la 768 de query-uri dureaza ~ 2 min, iar eu as vrea sa reduc  timpul 
sub 1 min.

So, are cineva vreo idee cum s-ar putea face ?

Eugen
---
Pentru dezabonare, trimiteti mail la 
[EMAIL PROTECTED] cu subiectul 'unsubscribe rlug'.
REGULI, arhive si alte informatii: http://www.lug.ro/mlist/


Raspunde prin e-mail lui