Avatar billede ej147 Nybegynder
13. april 2013 - 17:57 Der er 23 kommentarer og
1 løsning

Optimering af MySql

Jeg har modtaget en databasefil beregnet til min slægtsforskning fra denne adresse - og hentet ind i MySql:

http://www.oxy-gen-soft.net/mysql_en.php

Problemet er bare, at den "kører" for langsomt.
Er der en af jer her, der har en ide om, hvordan jeg kan få den til at hente data frem hurtige - evt. ved at se på tabelopbygning om den kan optimeres eller ved at ændre parametre i min MySql?

Med venlig hilsen
Erik
Avatar billede arne_v Ekspert
13. april 2013 - 18:09 #1
Har alle felter som der joines paa og som ikke er primaernoegle et indeks?
Avatar billede ej147 Nybegynder
13. april 2013 - 18:13 #2
Nu er jeg jo total amatør i MySql altså spørger jeg lige:
Hvis du mener en sorteringsnøgle så er svaret nej - ingen af tabellerne har det.

ps: Desuden skylder jeg dig point fra forrige hjælp :-)
Avatar billede arne_v Ekspert
13. april 2013 - 18:21 #3
Har du adgang til PHPMyAdmin?
Avatar billede ej147 Nybegynder
13. april 2013 - 18:26 #4
Ja. Det er version 3.5.2.2
Avatar billede arne_v Ekspert
13. april 2013 - 18:38 #5
naar jeg gaar ind i MySQL og vaelger en tabel i "structure" saa kan jeg foerst se felterne og saa kommer der en index sektion.

Laengst ude til hoejre oppe ved felterne er der en "more" combon som indeholder "add index".
Avatar billede ej147 Nybegynder
13. april 2013 - 19:48 #6
Det ser ud til at nogen af tabellerne har en primærnøgle - men åbenbart intet index???
Avatar billede arne_v Ekspert
13. april 2013 - 19:55 #7
De felter som bruges i joins og ikke er primaernoegler boer have et index.
Avatar billede ej147 Nybegynder
13. april 2013 - 19:59 #8
Ok. Men der er jo forskellige typer index?? hvilke er bedst at bruge til det her?
Avatar billede arne_v Ekspert
13. april 2013 - 20:02 #9
bare index ikke unique index ikke clustered index
Avatar billede ej147 Nybegynder
13. april 2013 - 21:11 #10
Det her forstår jeg ikke, kan du forklare hvor jeg ser det?

"De felter som bruges i joins og ikke er primaernoegler boer have et index."

Hvordan kan jeg se deres joins forbindelser og hvorvidt feltet har en primærnøgle?
Jeg kan se at nogle felter har en grå nøgle og andre en gul??
Jeg gætter på den gule er primær, hvis det er tilfældet må det jo betyde, at der kan være flere primærer nøgler i 1 tabel - eller?
Men hvordan ser jeg joint?
Avatar billede ej147 Nybegynder
13. april 2013 - 21:20 #11
Jeg har fundet frem til Designer og kan se at der overhovedet ikke er nogen forbindelser mellem tabellerne - ikke godt.
Har du et forslag til hvad jeg kan gøre?
Avatar billede arne_v Ekspert
13. april 2013 - 23:16 #12
I det link du angav i det originale spoergsmaal var der nederst et diagram med nogle join lines.
Avatar billede ej147 Nybegynder
13. april 2013 - 23:38 #13
Ja, korrekt.
Men hans opskrift er ikke korrekt, for når jeg bruger hans program Oxy-Gen kommer data godt nok ind i MySql helt automatisk, men der bliver oprettet 14 tabeller og ikke 8 - uden Join forbindelser.
Hans program er smart nok til folk som undertegnede, der ikke aner en brik om det, men den smutter altså ved join.
Har prøvet og se hvordan og hvorledes jeg evt. selv kan lave de join forbindelser, men kan ikke se hvor/hvordan.
Har du evt. et forslag?
Avatar billede ej147 Nybegynder
13. april 2013 - 23:43 #14
Ps:
Hans program er beregnet til at man kan tage en Gedcom fil fra et slægtsforskningsprogram og derpå "køre" filen gennem Oxy-Gen programmet - og direkte ind i MySql.
Så slipper man for først at skulle hente den Gedcom fil indaccess og derfra videre.
Avatar billede arne_v Ekspert
13. april 2013 - 23:56 #15
Det der skal joines paa er jo en egenskab ved data og helt uafhaengigt af maaden data bliver flyttet paa.

Og joins er ikke noedvendigvis en egenskab i databasen. Mna kan definere foreign keys. Men det er ikke noedvendigt.
Avatar billede ej147 Nybegynder
14. april 2013 - 00:03 #16
Har siddet og kigget på hvordan og hvorledes jeg evt. kan få lavet join forbindelser, men får slet ikke lov til det.
Den melder:Fejl - relation ikke tilføjet.
Har du et forslag til hvad i himlens navn jeg stiller op?
Avatar billede arne_v Ekspert
14. april 2013 - 00:17 #17
Ja. Lad vaere med at definere foreign keys.

:-)
Avatar billede ej147 Nybegynder
14. april 2013 - 00:23 #18
Har lige set hvordan og hvorledes med de join, det kan selvfølgelig godt lade sig gøre.
Hvad er der galt med foreign keys?
Avatar billede arne_v Ekspert
14. april 2013 - 00:29 #19
Der er som saadan ikke noget galt med foreign keys. De er rigtigt gode. Men der er lidt tekniske detaljer omkring dem i MySQL og at lave dem vil ikke hjaelpe dig med dit problem, saa jeg vurderer at de er spild af tid.
Avatar billede ej147 Nybegynder
14. april 2013 - 00:33 #20
Fint nok, har slettet dem igen :-)
Avatar billede arne_v Ekspert
14. april 2013 - 00:39 #21
Bare saet index paa de felter der skal joines paa hvilket saa er de samme felter.

Index hjaelper paa performance.

Foreign keys hjaelper ikke paa performance.
Avatar billede ej147 Nybegynder
28. april 2013 - 18:16 #22
Hej Arne.
Send mig venligst et svar på dette, så vi kan få lukket tråden :-)
Tak for hjælpen.
Erik
Avatar billede arne_v Ekspert
28. april 2013 - 19:02 #23
svar
Avatar billede ej147 Nybegynder
28. april 2013 - 21:04 #24
Tusind tak :-)
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