sql >> Databasteknik >  >> RDS >> Mysql

Varför är en mysqldump med enkeltransaktion mer konsekvent än en utan?

Eftersom dumpen är i en transaktion får du en konsekvent bild av alla tabeller i databasen. Detta förklaras förmodligen bäst med ett motexempel. Säg att du dumpar en databas med två tabeller, Orders och OrderLines

  1. Du startar dumpningen utan en enda transaktion.
  2. En annan process infogar en rad i Orders tabell.
  3. En annan process infogar en rad i OrderLines tabell.
  4. Dumpen bearbetar OrderLines tabell.
  5. En annan process raderar Orders och OrderLines poster.
  6. Dumpen bearbetar Orders tabell.

I det här exemplet skulle din dump ha raderna för OrderLines , men inte Orders . Data skulle vara i ett inkonsekvent tillstånd och skulle misslyckas vid återställning om det fanns en främmande nyckel mellan Orders och OrderLines .

Om du hade gjort det i en enda transaktion, skulle dumpningen varken ha beställningen eller raderna (men det skulle vara konsekvent) eftersom båda infogades och raderades efter att transaktionen började.



  1. Hur man identifierar ett språk i utf-8-kolumnen i MySQL

  2. internationaliserat reguljärt uttryck i postgresql

  3. Hur du säkerhetskopierar din Moodle MySQL-databas

  4. Hur man omformulerar en sql-fråga