Avatar billede evilfish Nybegynder
13. januar 2011 - 14:21 Der er 3 kommentarer

Index på foreign key

Hej eksperter

Mit spørgsmål er om jeg kan lægge et index på en foreign key?

Jeg har et par queries som er blevet langsomme efter der er kommet data i min database. Min explain viser at jeg har ingen form for index, key eller andet og derfor går den igennem AL data hver gang, hvilket ikke er særlig hensigts mæssigt.

Jeg har forsøgt at lægge et index på, men rammer ind i fejl hver gang, så ville vide om det overhovedet er muligt?
Avatar billede arne_v Ekspert
13. januar 2011 - 15:24 #1
Du kan absolut laegge index paa en foreign key.

Ihvertfald i aeldre versioner af MySQL var der kraevet at man gjorde det.

Hvilken fejl faar du?
Avatar billede evilfish Nybegynder
14. januar 2011 - 08:53 #2
Mens jeg skrev en ny kommentar, så fandt jeg løsningen. Jeg havde lavet et kald som var 3 nested queries, hvilket i sig selv virkede fint. Men når de var nested så ville jeg tro at den en nøgle ikke blev brugt korrekt, og derfor hentede den de samme data mange gange, hvilket gjorde de hele gik langsomt.

Jeg har nu flyttet mine to nested queries ud som en INNER JOIN på den første, og det har sænket tiden fra 7 sekunder til 17 millisekunder (Med RESET QUERY CACHE).

Så tak skal du have for at du fik mig til at skriv det dybdegående kommentar der gav mig løsningen :D
Avatar billede arne_v Ekspert
03. marts 2011 - 03:37 #3
Tid at få afsluttet her?
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