sql >> Database teknologi >  >> RDS >> Mysql

konsekvenser af at ændre mysql-lagringsmotor, mens applikationen kører i produktion

Enhver ændring, du foretager med ALTER TABLE der kræver en tabelkopi vil låse bordet. Dette er det vigtigste problem for applikationer. Tabellen vil være utilgængelig fra forespørgsler fra enhver applikation.

Hvor længe denne lås varer afhænger af bordets størrelse, og ydeevnen af ​​din server og den anden belastning serveren er under.

Du kan foretage ændringer med minimal nedetid, hvis du bruger et online skemaændringsværktøj som pt-online-schema-change .

En anden strategi er at foretage ændringer af tabeller på en replika-databaseinstans. Det er okay for borde at have en anden lagermotor på en replika end på masteren. Du er ligeglad med, at tabeller er låst, det vil bare få replikeringen til at halte bagud, og når ændringerne er udført, burde replikeringen indhente det. Når det hele er gjort, kan du skifte din applikation til at bruge replikaen og derefter dekommissionere den tidligere masterdatabaseinstans.




  1. Sådan returneres id'er på Inserts med mybatis i mysql med annoteringer

  2. Sådan beregnes om alderen er inden for intervallet fra fødselsåret, mens du henter fødselsåret fra Db i Django ORM

  3. Hvordan kan jeg bruge MySQL assign operator(:=) i dvale native forespørgsel?

  4. Qt-applikation går ned, når du bruger ODBC-driver (macOS)