Ik heb in mijn database een paar tabellen met overhead. Wat is dat eigenlijk? Ik denk zelf iets van gebriukte ruimte die eigenlijk niet nodig is. Klopt dat een beetje? En kan ik zoiets gewoon weggooien? (Tabel optimaliseren)
Ja, je hebt het helemaal goed.
Bijv als je auto increment hebt op een ID veld en je hebt bijv 1 t/m 5 al gemaakt.
Stel je haald dan handmatig 3t/m5 weg, dan ontstaat er een gat die hij toch moet vullen voor je auto increment om door te gaan.
@ wes,

Je kan toch zonder problemen rijen verwijderen of....?
Dit vond ik net op google:

MySQL uses files to store the data and as they are accessed, an 'overhead' is built up of data which is cached, in use, stored temporarily etc. Over time, this overhead builds up and I would assume you would eventually get a performance decrease. The OPTIMIZE command from within MySQL and phpMyAdmin gets rid of the overhead.
Wat ik doe: Ik zet op een paar pagina de OPTIMIZE TABLE `tabel`; query. Elke keer dat de pagina gevraagd wordt is je tabel dan weer ok
Ik denk dat dat zware overkill is. Ik weet niet hoeveel resources die functie gebruikt maar ik zou dat als je 't automatisch wilt laten doen zowiezo via een cron job doen en niet op deze manier.
Ik ben benieuwd wat het tijdsverschil werkelijk is. Eens zoeken of ik nog ergens een grote tabel heb die geoptimized kan worden.
om eerlijk te zijn merk je het verschil in de meeste gevallen nauwelijks. Soms wel na het uitvoeren van een bepaald script heb ik 13 mb overhead. Het verwijderen hiervan merk je overigens wel in tijd.
Ik had een database van ruim 250mb. Hierbij draaide ik elke nacht een cronjob met optimize. En merkte hierbij wel een verschil. Maar om het op elke pagina te draaien of om zo snel een overhead van 13mb te krijgen dan doe je toch iets fout.

Reageren