sql >> Database >  >> RDS >> Mysql

MySQL werkt de hele database bij zonder downtime

Hier is iets dat ik doe. Het resulteert niet in nul downtime, maar kan in minder dan een seconde worden voltooid.

Maak een database die alleen interface-elementen heeft voor uw echte database. In mijn geval bevat het alleen weergavedefinities en alle zoekopdrachten van gebruikers gaan via deze database.

Maak elke nacht een nieuwe database aan. Wanneer dit is gebeurd, werkt u de weergavedefinities bij om naar de nieuwe database te verwijzen. Ik zou aanraden om ofwel de gebruikerstoegang tot de database met de views uit te schakelen terwijl u ze bijwerkt, ofwel alle views te verwijderen en opnieuw aan te maken -- dit voorkomt gedeeltelijke toegang tot de oude database. Omdat het maken van weergaven snel gaat, zou dit een zeer snelle handeling moeten zijn.

Dit alles doen we door middel van een baan. Voordat we de productieweergaven wijzigen, testen we de weergave in een andere database om er zeker van te zijn dat ze allemaal werken.

Vanzelfsprekend, als u alter view . gebruikt in plaats van consistentie tussen alle weergaven te vereisen, is er geen downtime, maar een korte periode van inconsistentie.




  1. Hoe verwijder ik voorloop- en volgspaties in een MySQL-veld?

  2. Gemiddelde rijlengte hoger dan mogelijk

  3. Wanneer *niet* voorbereide verklaringen gebruiken?

  4. PERIOD_ADD() Voorbeelden – MySQL