sql >> Database >  >> RDS >> Mysql

MySQL optimaliseren voor ALTER TABLE van InnoDB

Je zou kunnen kijken naar pt-online -schema-verandering uit de Percona-toolkit. Wat het in wezen doet is:

  • Kopieert originele tabelstructuur, voert ALTER uit.
  • Kopieert rijen van oude tabel naar nieuwe tabel.
  • Gebruikt triggers om wijzigingen bij te houden en te synchroniseren tijdens het kopiëren.
  • Als alles klaar is, worden de tabellen gewisseld door beide te hernoemen.

Werkt heel goed voor databases met één instantie, maar kan behoorlijk lastig zijn als je replicatie gebruikt en je het je niet kunt veroorloven om slaves te stoppen en ze later opnieuw op te bouwen.

Er is ook een leuk webinar over deze hier .

PS:ik weet dat het een oude vraag is, ik beantwoord ze gewoon voor het geval iemand deze via een zoekmachine tegenkomt.



  1. MySQL-fout 1170 (42000):BLOB/TEXT-kolom gebruikt in sleutelspecificatie zonder sleutellengte

  2. Hoe MySQL-databaseschema op GitHub opnemen?

  3. MySQL:SUM() met JOIN retourneert onjuiste waarden

  4. Hoe datumgegevens in MySQL te laden bij gebruik van LOAD DATA