What storage mechanisms do you use?
If you use InnoDB, you can run mysqldump with the -single-transaction flag and get a consistent snapshot without locking tables.
If you use MyISAM, you need to lock the tables to get a consistent snapshot. Otherwise, any insert / update / delete statements that execute in your MyISAM tables when mysqldump starts may or may not reflect the result, depending on the time of these statements.
source share