While dumping large database with --single-transaction option, there is a chance, that a table will be truncated during dump, resulting 'Table definition has changed, please retry transaction' error.
In some cases, it means that dumping database always fails, i.e. when a table, that gets often truncated, is dumped after a large table.
In environments, where changing database layout or backup strategy is not trivial, it makes using --single-transaction problematic.
The suggested --order-by-size option will dump tables according to their size, smaller tables first.
--order-by-size cannot be used when one is specifying table names on the command line.
Assuming, that truncated tables are usually small, dumping small tables first greatly reduces such errors.