Bene, non è sicuro, da Manuale di MySQL :
Questa opzione invia un'istruzione START TRANSACTIONSQL al server prima di eseguire il dump dei dati. È utile solo con tabelle transazionali come InnoDB e BDB, perché in questo modo esegue il dump dello stato coerente del database al momento dell'emissione di BEGIN senza bloccare le applicazioni.
Quando si utilizza questa opzione, è necessario tenere presente che solo le tabelle InnoDB vengono scaricate in uno stato coerente. Ad esempio, qualsiasi tabella MyISAM o MEMORY scaricata durante l'utilizzo di questa opzione può ancora cambiare stato.
Mentre è in corso un dump --single-transaction, per garantire un file dump valido (contenuto della tabella e coordinate binarie del registro corretti), nessun'altra connessione deve utilizzare le seguenti istruzioni:ALTER TABLE, CREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATETABLE. Una lettura coerente non è isolata da tali istruzioni, quindi il loro utilizzo su una tabella da scaricare può causare il SELECT eseguito da mysqldump per recuperare i contenuti della tabella per ottenere contenuti errati o fallire.
L'opzione --single-transaction e l'opzione --lock-tables si escludono a vicenda perché LOCK TABLES fa sì che tutte le transazioni in sospeso vengano impegnate in modo implicito.
Questa opzione non è supportata per le tabelle MySQLCluster; i risultati non possono essere garantiti per essere coerenti a causa del fatto che il motore di archiviazione NDBCLUSTER supporta solo il livello di isolamento della transazione READ_COMMITTED. Dovresti sempre usare NDBbackup e ripristinare invece.
Per eseguire il dump di tabelle di grandi dimensioni, dovresti combinare --single-transactionoption con --quick.
Se desideri eseguire il backup/spostare il tuo DB live, dovresti considerare Replica MySQL