Avatar billede pitzen Nybegynder
08. maj 2008 - 12:43 Der er 6 kommentarer og
1 løsning

100.000 rækker i en tabel - er det for meget?

Hey experter!

Jeg har en tabel med 100.000+ rækker og en forespørgsel kan til tider tage 0,4 sekunder. Det er relativt langsomt synes jeg.

Er det for meget at have 100.000 rækker. Skal du knækkes over?

Pf. tak.

Mvh. Morten
Avatar billede fsconsult.dk Nybegynder
08. maj 2008 - 12:49 #1
Det burde ikke være det store problem, men det forudsætter at du har et brugbart index, på de ting du søger på.
Avatar billede pitzen Nybegynder
08. maj 2008 - 13:15 #2
Men for tiden er det er problem i og med det går så langsomt. F.eks denne query :

SELECT SUM( point ) AS Point
FROM point_log
WHERE DATE( time ) = CURDATE( )
AND point>0

tager 0,65 sekunder.

Desuden vil databasen vokse meget endnu. Er det noget jeg må leve med?
Avatar billede jokkejensen Novice
08. maj 2008 - 13:26 #3
århhh det er jo ikke noget du må gøre flere gange på en side visning..

Du bliver nød til at cache det data på en eller anden form, så du ikke skal spørge sql server ofte.

/J
Avatar billede jokkejensen Novice
08. maj 2008 - 13:26 #4
Og nej, det skal ikke deles op.
Avatar billede fsconsult.dk Nybegynder
08. maj 2008 - 13:59 #5
hvad  datatype er dit "time" felt?  (iøvrigt ville jeg ikke bruge et reserveret ord som feltnavn).
Umiddelbart ville jeg tro at din DATE( time ) = CURDATE( )  giver en tablescan, hvor du nok burde bruge et BETWEEN statement istedet, som kan udnytte hvis du laver index på dit "time" felt
Avatar billede pitzen Nybegynder
08. maj 2008 - 14:13 #6
Data typen er DATETIME

Hvad vil det sige at lave index på time feltet?
Avatar billede fsconsult.dk Nybegynder
08. maj 2008 - 14:19 #7
et index svarer til en indholdsfortegnelse.

uden index, svarer det til at du leder efter en person i telefonbogen, ved at læse den igennem fra ende til anden, hvilket IKKE er den hurtigste løsning.

CREATE INDEX time_index ON point_log (time);
og lav så en "WHERE time BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 1 DAY)
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