我正遭受 mysqldump/mariadb-dump 速度缓慢的困扰。
我发现禁用autocommit, unique_checks and foreign_key_checks
提升导入性能。
我通过在前面dump.sql
添加
SET autocommit=0;SET unique_checks=0;SET foreign_key_checks=0;
并附加
COMMIT;SET unique_checks=1;SET foreign_key_checks=1;
直到它的结束。
附加很简单,但是在添加时,我需要在所消耗的时间和空间之间做出妥协。
前面加上
sed -i '0,/^/s//SET autocommit=0;SET unique_checks=0;SET foreign_key_checks=0;/' dump.sql
进行大型转储可能需要花费大量时间,但它会创建一个文件。
cat <(echo "SET autocommit=0;SET unique_checks=0;SET foreign_key_checks=0;") dump.sql <(echo "COMMIT;SET unique_checks=1;SET foreign_key_checks=1;") > new-dump.sql"
速度很快,但它会创建另一个转储文件,因此占用大量空间(即使它只是临时的)
在创建转储时,是否可以指示mysqldump/maridb-dump
在转储前面添加和附加自定义文本?