Е, това не е сигурно, от Mysql Manual :
Тази опция изпраща оператор START TRANSACTIONSQL към сървъра преди изхвърляне на данни. Полезно е само с транзакционни таблици като InnoDB и BDB, защото тогава изхвърля последователното състояние на базата данни по времето, когато BEGIN е бил издаден, без да блокира никакви приложения.
Когато използвате тази опция, трябва да имате предвид, че само InnoDB таблици се изхвърлят в последователно състояние. Например, всички MyISAM или MEMORY таблици, изхвърлени при използване на тази опция, все още могат да променят състоянието си.
Докато дъмпът на --single-transaction е в процес, за да се осигури валиден dumpfile (правилно съдържание на таблица и координати на двоичен журнал), никоя друга връзка не трябва да използва следните изрази:ALTER TABLE, CREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATETABLE. Последователното четене не е изолирано от тези изрази, така че използването им в таблица, която трябва да бъде изхвърлена, може да доведе до SELECT, който се изпълнява от mysqldump за извличане на съдържанието на таблицата, за да се получи неправилно съдържание или да се провали.
Опцията --single-transaction и опцията --lock-tables са взаимно изключващи се, тъй като LOCK TABLES кара всякакви висящи транзакции да бъдат ангажирани имплицитно.
Тази опция не се поддържа за MySQLCluster таблици; не може да се гарантира, че резултатите са последователни поради факта, че NDBCLUSTER механизмът за съхранение поддържа само READ_COMMITTED ниво на изолация на транзакция. Вместо това винаги трябва да използвате NDBbackup и възстановяване.
За да изхвърлите големи таблици, трябва да комбинирате опцията --single-transaction с --quick.
Ако искате да архивирате/преместите своята база данни на живо, трябва да помислите за MySQL репликация