De ce nu faci totdeauna cu insert intr-o alta tabela si la fiecare ora sa introduci un insert cu sum(cimpurile din prima tabela) dupa care stergi continutul tabelei intermediare? Mi se pare cea mai optima solutie.
Patrascu Eugeniu wrote: >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/ > > > --- Pentru dezabonare, trimiteti mail la [EMAIL PROTECTED] cu subiectul 'unsubscribe rlug'. REGULI, arhive si alte informatii: http://www.lug.ro/mlist/
