Kjapp og trygg hosting for Wordpress

Optimalisere database i mysql

nag

Medlem
Hva tenker du med optimalisering?

Generelt er optimalisering av mysql (og andre databaser) alfa og omega når det er snakk om store datamengder / stor trafikk. Har man webhotell får man vel ikke fiklet så mye med serverinnstillingene, så da er man i grunn stuck med å tune sql og indekser. Har man dedikert boks, og mulighet til å spekke denne, har man ganske mye flere muligheter.

I tillegg kan det vel sies at applikasjonen som bruker databasen har minst like mye å si. Hvor mange spørringer genereres pr sidevisning? Cach i applikasjonslaget, osv osv.

Kan vel raskt dele optimalisering i fire kategorier:
1. Optimalisering av datamodell - denne er ofte låst om man bruker ferdige aplikasjoner. Kan være aktuelt å bryte normalisering osv for å skape mer effektive spørringer og ferre join / aggregeringer.
2. Query optilamisering - Mest mulig effektive SQL spørringer mot den datamodellen man faktisk har.
3. Indeksering - Sørge for at ofte brukte og tunge spørringer treffer indeks (kan også nevne partisjonering som er litt i samme gata)
4. Server optimalisering - Tuning av parametere og hardware
 

nag

Medlem
Da skjønner jeg.

Det kommer litt an på. Dette er en funksjon for å rydde opp i datafila som lagrer informasjonen i databasen. Kan sees litt som defragmentering, og er lurt å gjøre hvis man sletter mye data / mye oppdateringer for å få tilgang til ubrukte områder i datafila (plass brukt til data som som nå er slettet). Kan selvsagt ha litt å si for ytelsen, men i små baser tviler jeg på det har spesielt merkbar effekt.

Generelt er det lurt å kjøre denne funksjonen en gang i blant for å få ryddet i datafila og få ned størrelsen på denne.

MySQL manualen er ganske bra så anbefaler å lese denne:
MySQL :: MySQL 5.1 Reference Manual :: 12.4.2.5 OPTIMIZE TABLE Syntax
 
Topp