20 helmikuun, 2022

MySQL:: Re:miten kutistetaan MySQL-tietokanta

oikein. Tämä on InnoDB: n jaetun tablespace-tiedoston rajoitus. Olisi erittäin kallis operaatio MySQL-palvelimelle kompaktoida käytetty tila tablespace-tiedostossa ja kutistaa tiedosto. Kuvittele, jos sinulla on 100 Gt: n tablespace-tiedosto ja haluat tehdä sen uudelleenrakentamisen. Tyypillisesti MySQL-taulukon uusinnat edellyttävät sekä Vanhan että Uuden tallennustilan olemassaoloa samanaikaisesti levyllä toiminnan aikana.
Niinpä InnoDB: n käyttäytyminen on jättää tyhjä tila ja käyttää sitä myöhemmin uusien riviversioiden lisäämiseen.
Katso:
Bug #1287 http://bugs.mysql.com/bug.php?id=1287
Bug #1341 http://bugs.mysql.com/bug.php?id=1341
yksi ratkaisu yhteisen InnoDB-taulukkotason kutistamiseen on:
1. Varmuuskopiointi * kaikki * InnoDB taulukoita mysqldump.
2. Pudota kaikki InnoDB-pöydät.
3. Poista ibdata1-tiedosto fyysisesti tiedostojärjestelmän käyttöliittymästä.
4. Käynnistä MySQL-palvelin uudelleen, joka luo uuden, pienen tablespace-tiedoston.
5. Palauta kaikki InnoDB-pöydät, mikä laajentaa tablespace-tiedostoa tarpeen mukaan.
toinen ratkaisu on käyttää mahdollisuutta tallentaa InnoDB-taulukot erilliseen tiedostoon taulukkoa kohden. Katso http://dev.mysql.com/doc/refman/5.0/en/multiple-tablespaces.html jos teet niin, sinun pitäisi pystyä käyttämään OPTIMOINTIPÖYTÄÄ tai MUUTTOPÖYTÄÄ jokaisessa InnoDB-taulukossa, jonka haluat kutistua. Tämä on tarkoitus rakentaa uudelleen .ibd-tiedosto yksittäiselle taulukolle.
Terveisin,
Bill K.

Vastaa

Sähköpostiosoitettasi ei julkaista.