21. maj 2003 - 12:49Der er
12 kommentarer og 1 løsning
Optimer query + index. HJÆÆLP
Jeg har en tabel struktur som følger herunder. Jeg har et query som joiner de 3 tabeller, men efter der kom en masse data i, så er den blevet pisse langsom (pardon my french).
Her kommer så mit Query: select db_billeddata.eventid, db_billeddata.deltagernr, db_billeddata.fotonr, db_runnerphoto.id, db_runnerphoto.filename, db_event.eventname FROM db_billeddata, db_runnerphoto, db_event WHERE (db_billeddata.eventid = db_event.mainevent AND db_billeddata.deltagernr = "& deltagernr &" AND db_runnerphoto.eventid = db_billeddata.eventid AND db_runnerphoto.fotoid = db_billeddata.fotonr AND db_event.id = "& eventid &") ORDER BY db_billeddata.id;
Hvad er der der går galt og hvorfor er den så langsom.
I db_runnerphoto er der 62724 records, i db_dilleddata er der 53198 records og i db_event er der 12.
Please er der en venlig sjæl som kan gennemskue hvorfor det går så pisse langsomt.
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Du er her : Eksperten : Databaser : MySQL : Optimer query + index. HJÆÆLP :
Sidste nyt fra Eksperten : Eksperten har været nede Eksperten har været ramt af alvorlige tekniske problemer, der har betydet, at sitet har været nede hele weekenden. Det beklager vi. Nedetiden blev ekstra lang, da vores overvågningssoftware også har f... læs mere
Optimer query + index. HJÆÆLP 100 point fra eksperten1 Luk annonce Jeg har en tabel struktur som følger herunder. Jeg har et query som joiner de 3 tabeller, men efter der kom en masse data i, så er den blevet pisse langsom (pardon my french).
Her kommer så mit Query: select db_billeddata.eventid, db_billeddata.deltagernr, db_billeddata.fotonr, db_runnerphoto.id, db_runnerphoto.filename, db_event.eventname FROM db_billeddata, db_runnerphoto, db_event WHERE (db_billeddata.eventid = db_event.mainevent AND db_billeddata.deltagernr = "& deltagernr &" AND db_runnerphoto.eventid = db_billeddata.eventid AND db_runnerphoto.fotoid = db_billeddata.fotonr AND db_event.id = "& eventid &") ORDER BY db_billeddata.id;
Er det mig der er blevet skør i bolden, eller er det at benytte flere tabeller i mySQL ikke det samme som at Left Joine ? (FROM tabel1, tabel2, tabel3...)
Det syntes jeg bare at have forstået ud fra en mySQL bog jeg har læst (noget af). Hvordan ville det kunne optimeres, hvis vi forudsætter at det IKKE er joins. (men den henter dog data fra 3 tabeller)
Det er en fin join - men det er ikke en left join. Dvs du har et deltagernr og et eventid. Hvilke af dine tabeller er "store", og hvor mange tupler er der typisk i et resultat?
erikjacobsen :) (Så er jeg i trygge hænder!) Er det bare en JOIN, jeg har haft ændret på queryen til diverse typer joins INNER, LEFT, JOIN, og de returnerede samme tider (ca.) De store tabeller er db_runnerphoto (62724 records), db_billeddata (53000 records) i db_event er der kun 12 records. Nu ved jeg ikk ehvad du mener med "tupler", men hvis du mener records i resultatet er det typisk 1-10 records. (oftere 1 end 10)
Jeg ændrede den ene til at være en Int(10) som den anden.... Søgetiden gik fra at være ca 2,5 sek. til at være 0,12 sek.... Du er en life-saver.
Please smid et svar... og hvis du smider en post adresse er det _lige_ før at du får min første fødte med. (selvom hun er 6 år og nok ikke ville syntes det er sjovt)
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.