sql >> Databáze >  >> RDS >> Mysql

MySQL aktualizuje celou databázi bez prostojů

Tady je něco, co dělám. Nevede to k nulovým prostojům, ale mohlo by to skončit za méně než sekundu.

Vytvořte databázi, která má pouze prvky rozhraní k vaší skutečné databázi. V mém případě obsahuje pouze definice pohledů a všechny uživatelské dotazy procházejí touto databází.

Každou noc vytvořte novou databázi. Až budete hotovi, aktualizujte definice pohledu tak, aby odkazovaly na novou databázi. Doporučil bych buď vypnout uživatelský přístup k databázi obsahující pohledy, když je aktualizujete, nebo smazat všechny pohledy a znovu je vytvořit – to zabrání částečnému přístupu ke staré databázi. Protože vytváření pohledů je rychlé, měla by to být velmi rychlá operace.

To vše děláme prací. Ve skutečnosti před změnou produkčních pohledů otestujeme vytvoření pohledu na jiné databázi, abychom se ujistili, že všechny fungují.

Samozřejmě, pokud použijete alter view místo toho, abychom vyžadovali konzistenci napříč všemi pohledy, nedochází k žádnému výpadku, pouze krátkému období nekonzistence.




  1. MySQL alter table upravit sloupec selhává na řádcích s hodnotami null

  2. #1025 - Chyba při přejmenování (errno:150) v mysql

  3. Uspořádejte sadu výsledků na základě dat klauzule WHERE IN

  4. Umožněte hibernaci zpětně uvozovat všechny názvy tabulek / sloupců