使用mysqldump导出大表的注意事项
在使用mysqldump导出数据时,倘若添加–q(--quick) 参数时,select出来的结果将不会存放在缓存中,而是直接导出到标准输出中。如果不添加该参数,则会把select的结果放在本地缓存中,然后再输出给客户端。
- 如果只是备份小量数据,足以放在空闲内存buffer中的话,禁用-q参数,则导出速度会快一些。
- 对于大数据集,如果没办法完全储存在内存缓存中时,就会产生swap。对于大数据集的导出,不添加-q参数,不但会消耗主机的内存,也可能会造成数据库主机因无可用内存继而宕机的严重后果。
因此,如果使用mysqldump来备份数据时,建议添加-q参数。
导出示例:
mysqldump -uroot -p-P8635 -h192.168.0.199 --set-gtid-purged=OFF --single-transaction --flush-logs -q test t1>t1.sql