Avatar billede intenz Novice
04. januar 2005 - 21:30 Der er 13 kommentarer og
1 løsning

Indexes - hvor mange?

Hej

Jeg har tænkt lidt over om hvor mange indekses det kan betale sig at have.

Jeg har livewebstats.dk og tæller pt. omkring 400.000 hits om måneden med min tæller, fordelt ud over alle brugere.
Samtidigt er jeg interesseret i at holde størrelsen på databasen på et minimum.

Jeg er ved at lave hele systemet om, så det kører optimalt, hvilket det ikke gør nu, mht. programmering og database.

Jeg har 2-3 felter som hver bliver brugt i henholdsvis where og order by kommandoer i mysql.

Nu er det jo lidt svært for jer at vide præcis information omkring databasen. Men ville i vurdere at jeg skulle ofre den ekstra database plads til at lave indeks på alle 2-3 felter?
Det skal også laves så der er plads til mange flere brugere.

Jeg kan ikke helt finde ud af hvilken løsning der er mest optimal.
Avatar billede arne_v Ekspert
04. januar 2005 - 21:36 #1
Felter du joiner på eller udvælger rækker på vil du normalt lave index på.

Jeg er ikke så overbevist om fordelen ved index på noget som du laver order by på.

Jeg synes ikke at 2-3 index på en tabel lyder forudroligende.

Index koster en lille smule ved INSERT, men ikke så meget.
Avatar billede intenz Novice
04. januar 2005 - 21:48 #2
Det er mere størrelsen på databasen jeg er lidt bekymret over. Når man har få tabeller betyder det ikke så meget. Men når man kommer op på mellem 1000-2000 betyder det en del.
Avatar billede intenz Novice
04. januar 2005 - 21:51 #3
Et spørgsmål mere:
Jeg kalder et af de felter jeg bruger til where kommandoen for fx. hits, resolution, osv. Ville det være bedre at kalde det fx. 1,2,osv i stedet. Så indeks evt ville fungere bedre?
Avatar billede arne_v Ekspert
04. januar 2005 - 21:52 #4
1000-2000 tabeller lyder lidt voldsomt

Men jeg har svært ved at tro at plads forbruget ved index vil være et problem.

400000 rækker per måned
3 index
lad os sige 50 bytes per index * række

det er 60 MB om måneden

det er ingenting
Avatar billede arne_v Ekspert
04. januar 2005 - 21:53 #5
Nej felt navnet bør ikke påvirke performance på nogen måde.
Avatar billede intenz Novice
04. januar 2005 - 21:59 #6
En tabel der fylder 1kb uden indeks fylder 2kb med 1 indeks, 3kb med 2 indeks, osv.
Ifølge phpmyadmin i hvert fald.
Avatar billede intenz Novice
04. januar 2005 - 22:00 #7
Jeg har en tabel med 13 poster pt. jeg bruger til at udvikle systemet

Her er phpmyadmins information omkring den.

Data 668 Bytes
Indeks 2,048 Bytes
Avatar billede intenz Novice
04. januar 2005 - 22:01 #8
Den har et indeks, på et felt med int(10)
Avatar billede arne_v Ekspert
04. januar 2005 - 22:03 #9
Jeg tror ikke at du skal ligge for meget i hvor meget et index fylder med så
få poster. Prøv og skovl en 10000 rækker i og se hvor meget det så fylder.
Avatar billede intenz Novice
04. januar 2005 - 22:06 #10
Jeg har en anden med over 70.000 poster:
Data 769,274 Bytes
Indeks 862,208 Bytes

Den laver indeks på 2 felter, også med int(10).

Men det bliver en del i længden, med så mange tabeller.

Så det er mere om det kan betale sig.
Avatar billede arne_v Ekspert
04. januar 2005 - 22:11 #11
862,208 Bytes / 70.000 poster = ca. 12 bytes per post = ingenting

jeg tror absolut godt at det kan betale sig

du skal ikke lave ret mange queries for at det vil hjælpe meget
Avatar billede intenz Novice
04. januar 2005 - 22:13 #12
hmm :)

Jeg tænkte også det ville være smart, ville bare høre en anden mening.

Læg et svar hvis du vil have point.
Avatar billede lap Nybegynder
04. januar 2005 - 22:16 #13
men hvis du laver 1000 - 2000 tabeller, så mangler du at normalisere din database (uden at vide konkret hvad du har lavet/vil lave).
Avatar billede arne_v Ekspert
04. januar 2005 - 22:16 #14
svar
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

IT-JOB

NOVAX A/S

QA Consultant

Forsikrings- og pensionsakademiet A/S

IT-teknisk profil

Unik System Design A/S

DevOps Engineer

Styrelsen For It og Læring

Security & Compliance Operations Specialist