sql >> Database >  >> RDS >> Mysql

Wat betekent Tabel niet optimaliseren, in plaats daarvan opnieuw maken + analyseren?

Dat is echt een informatieve boodschap.

Waarschijnlijk doe je OPTIMIZE op een InnoDB tabel (tabel die de InnoDB-opslagengine gebruikt, in plaats van de MijnISAM opslagengine).

InnoDB ondersteunt de OPTIMIZE niet zoals MyISAM dat doet. Het doet iets anders. Het maakt een lege tabel en kopieert alle rijen van de bestaande tabel erin, en verwijdert in wezen de oude tabel en hernoemt de nieuwe tabel, en voert dan een ANALYSE uit om statistieken te verzamelen. Dat is het dichtst dat InnoDB kan krijgen om een ​​OPTIMIZE te doen.

Het bericht dat u krijgt, is in feite een MySQL-server die herhaalt wat de InnoDB-opslagengine tegen de MySQL-server heeft gezegd:

Tabel ondersteunt optimaliseren niet zegt de InnoDB-opslagengine...

"Ik (de InnoDB-opslagengine) doe geen OPTIMIZE-bewerking zoals mijn vriend (de MyISAM-opslagengine) doet."

"in plaats daarvan recreëren + analyseren" zegt de InnoDB-opslagengine...

"Ik heb besloten om een ​​andere . uit te voeren reeks bewerkingen die een gelijkwaardig resultaat opleveren."



  1. Vind alle niet-numerieke waarden in een kolom in Oracle

  2. Hoe u alle beperkingen van CHECK &Foreign Key voor een tabel in SQL Server uitschakelt (T-SQL-voorbeelden)

  3. Tabelindexen instellen in databases

  4. Zeer grote gehele getallen opslaan in MySQL