Avatar billede mister Nybegynder
28. august 2008 - 09:56 Der er 14 kommentarer

Hvordan får jeg min SQL-database indexeret

Efter opdatering af min hjemmeside joomla til ver.: 1.5.6 er min side http://www.vhc-vidar.dk. Blevet MEGET langsom.

Min udbyder fortæller at det skyldes at min database skal indexerets. Hmmmmm hvad betyder det i det hele taget. ??

Nogen der har et sted hvor man kan lære det. Eventuelt et link til et program til at lave arbejdet.

Og husk jer er HELT ny på dette punkt.

Jeg har af udbyderen fået denne adresse, men her er det for mig sort snak: http://rip747.wordpress.com/2007/12/03/optmizing-your-database-with-indexes/

Kan nogen hjælpe, please.

/TonnyO
Avatar billede nemlig Professor
28. august 2008 - 12:50 #1
Har du anvendt PhpMyAdmin, som du til din installation finder her:
http://db.vhc-vidar.dk/

Via PhpMyAdmin kan du nemt tilgå dine tabeller, og hvor du laver dine indexeringer.
Avatar billede mister Nybegynder
28. august 2008 - 13:33 #2
Ja jeg bruger PhpMyAdmin, men det er det der med indexeringer, jeg ikke helt forstår.

Hvis det nu var et excel regneark, kum man jo "bare" arrengerer kolloner efter alfabetet. Er det, det der menes. ????

Kom gerne med en lille let forstålig beskrivelse af hvad indexering af en database er.
Avatar billede michael_stim Ekspert
28. august 2008 - 13:38 #3
Nej, indeksering gør det hurtigere at søge i basen. I stedet for at søge i ALT (full table scan), "fortæller" man basen hvor der skal ledes.
Avatar billede michael_stim Ekspert
28. august 2008 - 13:39 #4
Som der står på siden:
Indekser gerne de kolonner der bliver brugt efter din WHERE osv.
Avatar billede michael_stim Ekspert
28. august 2008 - 13:41 #5
Har lige været inde og checke. Den er ikke specielt langsom, den side.
Avatar billede mister Nybegynder
28. august 2008 - 14:00 #6
- I stedet for at søge i ALT (full table scan),

- der bliver brugt efter din WHERE osv

- Som der står på siden:

Jeg kan sagtens åbne min database i PhpMyAdmin, men databasen er blevet generet af Joomla, og jeg ved INTET om databaser. Det jeg bruger PhpMyAdmin til er at reparerer og optimerer databasen, ved at klikke på alt og vælge den ønskede funktion.
Avatar billede nemlig Professor
28. august 2008 - 14:01 #7
Men har du ikke defineret nogen indexering, er det generelt en god ide, at gøre det. Det er dog ikke sikkert, at det lige nu giver en mærkbar forbedring.
Avatar billede nemlig Professor
28. august 2008 - 14:07 #8
Hvis den er genereret af Joomla, vil jeg gætte på, at den allerede er indexeret.
Avatar billede pidgeot Nybegynder
28. august 2008 - 14:08 #9
Du kan sammenligne et indeks med et stikordsregister i en bog. Stikordsregistret er en sorteret liste, der hurtigt fortæller dig hvor et givent emne behandles.

Tilsvarende er et indeks i en database en sorteret liste som databasen kan bruge til hurtigt at finde ud af hvor en given værdi i et felt optræder.

Nu er der bare det ved det, at fordi du bruger et færdigt system, så ved du ikke noget om databasen eller hvordan den bliver brugt. Du vil altså ikke få meget ud af selv at forsøge at oprette indekses, netop fordi du ikke ved hvad der bør indekseres - og det ved man kun ved at læse kode og finde frem til hvilke filtreringer der bliver foretaget.

Tillige bør systemet *selv* have oprettet indekses i forbindelse med installationen - for dem der har lavet systemet ved selvfølgelig bedst hvor det er relevant at indeksere.
Avatar billede nemlig Professor
28. august 2008 - 14:12 #10
Du kan tjekke det ved følgende.

1. Når du er logget ind via phpMyAdmin, kan du se dine tabeller i venstre kolonne.
I højre side kan du se nogle fakta om dine tabeller. Prøv og se, hvilken tabel, der har flest poster eller fx. er den største i "størrelse".
2. Vælg den pågældende tabel ved at klikke på navnet i venstre kolonne.
3. Herved åbnes nogle detaljer om tabellens struktur.
I det nederste og venstre område, kan du se en overskrift, der hedder "Indeks".
I kolonnen "Datatype" vil du se 1 eller flere rækker, hvor der står "Index". Hvis ikke, så er der ingen defineret.
Avatar billede mister Nybegynder
28. august 2008 - 14:42 #11
Okay nu begynder jeg at forstå lidt.

På dette billed http://www.tonnyo.dk/Database.gif kan man se at det er indexeringert eller hvad
Avatar billede nemlig Professor
28. august 2008 - 14:46 #12
Nej - der er ingen indexering.
Avatar billede pidgeot Nybegynder
28. august 2008 - 14:50 #13
...men nu er den tabel måske heller ikke et ret godt eksempel, da det er en relationstabel og det ikke er sikkert man har behov for at filtrere på menuid.

Jeg hentede lige Joomla ned, og kiggede i dens SQL-filer - den laver indtil flere indekses i en række tabeller, bl.a. dens banner-tabel. Der er derfor ingen umiddelbar grund til at tro de ikke skulle være hos dig.
Avatar billede mister Nybegynder
28. august 2008 - 15:00 #14
Er der en special tabel man kan ligge ud som i kan kigge i ???
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