25. februar 2007 - 13:53Der er
12 kommentarer og 1 løsning
Søgning i MySql
Håber nogen kan hjælpe og at dette spørgsmål er placeret korrekt.
Mit problem er at mine søgninger i MySql tager lang tid, op mod 5 sek. og det selvom jeg kun ønsker 10 resultater ud. Gennemløbes hele databasen, når jeg har sat LIMIT 10 på og index på kolonnen brugernavn i MySql??
Set rs = Conn.Execute("SELECT * FROM data WHERE brugernavn = '"&replace(session("brugernavn"), "'", "''")&"' ORDER BY ID DESC LIMIT 10")
Bemærker netop at hvis jeg fjerner ORDER BY bliver søgningen lynhurtig. Men ORDER BY skal jeg jo bruge for at få de korrekte visninger, kan jeg optimerer MySql på en eller anden måde?
Databasen vil løbe alle records igennem ved order by,,, ellers kan den jo ikke vide hvilken rækkefølge der skal laves. Om du kan optimere noget afhænger meget af din databasestruktur og er derfor ikke lige til at svare på. Men måske kunne du nøjes med at hente færre kolonner ud istedet for select * ?
Jeg har index på mine kolonner.:) Hvis et er muligt at sætte databasen til standart DESC - ville jeg kunne undvære af bruge ORDER BY og i stedet bare primære key og problemet vil være løst.
Er det muligt i MySql 4.0.17 eller kræves en anden version?
Mig bekendt kan du ikke sætte database op til dette. Databasen som sådan indeholder jo blot data i den rækkefølge som det er postet i. At sætte den til at sortere som deault, ville være lidt spøjst.
Men du kan måske opnå noget performance ved at bruge stored proceudre eller views. Begge dele er så vidt jeg husker først implementeret fra v. 5.0
Der er faktisk et sted i MySql hvor der er en drop down menu (ORDER BY) den står til DEFAULT, men hvis jeg prøver jeg ændre på den, får jeg en syntax fejl.
Men kan du fortælle lidt mere om stored procedure og wiews, hvordan virker det?
mysql har tidligere lavet nogle pdf filer der step by step fortæller om opbygningen af stored procedures m.m., meg kan godt nok ikke lige pt finde dem. Men du kan jo søge lidt rundt på mysql.com efter dem
Nej hvordan skulle jeg gøre det? Men noget må være helt galt, det tager mere end 5,5 sek at hente bare 10 resulater ud af min tabel med 1,6 mill poster.
Resultaterne/kolonner indeholder kun et brugernavn en dato, id og ip felt.
Utroligt at ingen ved noget om det her... Any way, lukker spg.
Synes godt om
Ny brugerNybegynder
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.