[TYPO3-UG Dutch] Serverbeheer MySQL vraag

Bas v.d. Wiel bas at kompasmedia.nl
Mon Apr 25 12:02:40 CEST 2011


 Hoi Jordan,

 InnoDB is wel enigzins configureerbaar, maar de ibdata-file wordt 
 inderdaad nooit kleiner. De reden daarvoor is om schijffragmentatie te 
 voorkomen. Krimpt de feitelijke omvang van je dataset, dan komt er 
 simpelweg ruimte vrij binnen je ibdata-bestand die bij latere groei 
 eerst gebruikt zal worden voordat het bestand verder groeit. Zou het 
 bestand zelf steeds mee krimpen met je dataset, dan is de kans heel erg 
 groot dat het bestand verspreid raakt over je fysieke disk. Op een 
 gewone harddisk geeft dat na verloop van tijd performanceproblemen.

 Een database die bij het dumpen in omvang explodeert, zou kunnen komen 
 door een hoeveelheid binaire BLOB-velden. Een dumpfile is ontzettend 
 inefficient m.b.t. ruimtegebruik omdat het een lange reeks letterlijk 
 leesbare SQL-commando's zijn. Er komt dus al omvang bij omdat alle data 
 ingekapseld moet worden in bijvoorbeeld INSERT-statements. Binaire 
 velden moeten worden omgecodeerd zodat ze in een ASCII-formaat dumpfile 
 kunnen bestaan, wat ook vrijwel altijd betekent dat ze aanzienlijk meer 
 ruimte zullen innemen.

 Je zou dit eens kunnen testen door je DB te dumpen en in een 
 splinternieuwe MySQL-instantie te laden. Mijn vermoeden is dat je dan 
 niet meer komt aan een 5GB ibdata-file. Gebruik je dumpfiles voor 
 backupdoeleinden, dan kun je die het beste ook nog even door bzip2 heen 
 halen. Dat scheelt gigantisch in de omvang.

 Een heel belangrijk voordeel van InnoDB boven MyISAM is de fijnmazigere 
 locking. Met name tabellen waar veel naar geschreven wordt, zoals de 
 diverse cache tabellen, hebben hier baat bij. InnoDB vergrendelt bij het 
 schrijven namelijk alleen de betreffende regel, terwijl MyISAM de hele 
 tabel op slot gooit. In een InnoDB-tabel kun je dus meerdere records 
 tegelijkertijd schrijven, terwijl MyISAM de requests ééń voor één 
 afhandelt. InnoDB is eigenlijk onontbeerlijk als je site veel bezoek 
 heeft. Ook voor backendgebruikers kan het prettig zijn dat ze niet op 
 elkaars transacties in bijvoorbeeld de DAM hoeven te wachten, wat bij 
 plm. 75 redacteuren een reëel probleem kan zijn.

 Uiteindelijk komt het er inderdaad wel op neer dat je met de omvang van 
 je database zult moeten leren leven. Heb je een file van 6GB, dan heb je 
 ooit die hoeveelheid data gehad en was die omvang dus nodig. Gezien de 
 nadelen van het snel 'teruggeven' van die ruimte, neem ik dit 
 persoonlijk voor lief.

 Groeten,
 Bas

> Vraag 1: er is een manier om per tabel dit soort innodb bestanden te
> genereren. Als je dan een tabel of databse weggooit wordt dit
> tenminste wel opgeschoond. Kent iemand die manier en hoe stel je dit
> in en hoe kom je dan af van die al bestande 6 GB ibdata1 file?
>
> Vraag 2: Een database geeft aan dat deze 360 MB is. Echter met het
> backup command mysqldump --opt etc. wordt het bestand 5 GB !. Dat 
> moet
> dus uit die ibdata1 tabel (innodb) data komen.
>
> Wie heeft hier wat zinnigs over te zeggen of wat suggesties? Ik post
> het hier maar omdat de TYPO3 debian nieuwsgroep al tijden niet meer
> gebruikt wordt.
>
> MvG,
>
> Jordan
> _______________________________________________
> TYPO3-UG-Dutch mailing list
> TYPO3-UG-Dutch at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-ug-dutch



More information about the TYPO3-UG-Dutch mailing list