Avatar billede phpguru1 Nybegynder
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?
Avatar billede arne_v Ekspert
11. april 2005 - 18:08 #1
Er der index på svardato ?
Avatar billede fsconsult.dk Nybegynder
11. april 2005 - 18:10 #2
opret et index til din søgning:

create index forum_svardato_index (svardato desc);
Avatar billede phpguru1 Nybegynder
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?
Avatar billede phpguru1 Nybegynder
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æ?
Avatar billede arne_v Ekspert
11. april 2005 - 18:19 #5
MySQL opdaterer selv løbende index.
Avatar billede arne_v Ekspert
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)
Avatar billede fsconsult.dk Nybegynder
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.
Avatar billede phpguru1 Nybegynder
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?
Avatar billede arne_v Ekspert
11. april 2005 - 18:31 #9
lidt sent ...
Avatar billede phpguru1 Nybegynder
11. april 2005 - 18:33 #10
Hva dæwlan, kan man ikke give to svar point? Hvordan går vi det så?
Avatar billede arne_v Ekspert
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
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester