sql >> Base de Datos >  >> RDS >> Mysql

¿Por qué mysqldump con transacción única es más consistente que sin ella?

Dado que el volcado se encuentra en una transacción, obtiene una vista coherente de todas las tablas de la base de datos. Esto probablemente se explica mejor con un contraejemplo. Digamos que descarga una base de datos con dos tablas, Orders y OrderLines

  1. Inicia el volcado sin una sola transacción.
  2. Otro proceso inserta una fila en Orders mesa.
  3. Otro proceso inserta una fila en OrderLines mesa.
  4. El volcado procesa las OrderLines mesa.
  5. Otro proceso elimina los Orders y OrderLines registros.
  6. El volcado procesa los Orders mesa.

En este ejemplo, su volcado tendría las filas para OrderLines , pero no Orders . Los datos estarían en un estado inconsistente y fallarían en la restauración si hubiera una clave externa entre Orders y OrderLines .

Si lo hubiera hecho en una sola transacción, el volcado no tendría ni el orden ni las líneas (pero sería consistente) ya que ambos se insertaron y luego se eliminaron después de que comenzó la transacción.