11. april 2005 - 18:06
Der er
10 kommentarer og 1 løsning
Select nyeste fra tabel
Hejsa, Jeg har en tabel med små 100.000 rækker og jeg vil gerne lave en select der henter de nyeste: SQL-forespørgsel: SELECT * FROM `forum` ORDER BY svardato DESC LIMIT 0 , 30 svardato er af type datetime. Ovenståede select sætning tager små 10 sek. at eksekvere, det er alt, alt for meget. Hvad er mine muligheder for at optimere?
Annonceindlæg fra Admin By Request
11. april 2005 - 18:08
#1
Er der index på svardato ?
11. april 2005 - 18:10
#2
opret et index til din søgning: create index forum_svardato_index (svardato desc);
11. april 2005 - 18:17
#3
arne_v -> Jeg har nu lavet et index på svardato og det kører markant hurtigere! Før havde jeg kun index på auto_increment id'en. Er det muligt at have index på flere felter i en tabel i mysql? fsconsult -> Jeg synes ikke rigtigt at jeg kan finde ud af at lave en index til min søgning? Skal jeg ikke angive en tabel eller noget i den sætning du skrive?
11. april 2005 - 18:18
#4
Kan MySQL selv finde ud af at holde index'et opdateret? Eller skal jeg selv lave en indexering i ny og næ?
11. april 2005 - 18:19
#5
MySQL opdaterer selv løbende index.
11. april 2005 - 18:20
#6
Hvilket også er grunden til at bruge af index koster en lille smule overhead ved INSERT (men altså kan give rigtigt meget i query performance)
11. april 2005 - 18:28
#7
Ups... create index forum_svardato_index on forum (svardato desc); og ja, du kan godt have index på flere felter, og felter felter i samme index.
11. april 2005 - 18:30
#8
Super, I skal have tak for hjælpen!! Arne_v, smidder du et svar så jeg også kan godkende det?
11. april 2005 - 18:31
#9
lidt sent ...
11. april 2005 - 18:33
#10
Hva dæwlan, kan man ikke give to svar point? Hvordan går vi det så?
11. april 2005 - 19:14
#11
Jo, men så skal man vente indtil begge har lagt svar og markere begge navne inden man klikker accepter
Computerworld tilbyder specialiserede kurser i database-management