当前,每当我从(.sql)文件执行MySQL数据库还原时。完成恢复过程需要很长时间。尤其是当数据库很大时。
在互联网上找到解决方案后,我遇到了一个将恢复过程从20个小时缩短到1个小时的解决方案。使用:
set global autocommit = 'OFF';
set global foreign_key_checks = 'OFF';
set global unique_checks = 'OFF';
-- perform sql Restore
set global autocommit = 'ON';
set global foreign_key_checks = 'ON';
set global unique_checks = 'ON';
太棒了!但是我很想了解它的工作原理,以及是否有进一步加快恢复过程的方法。因此,我决定研究恢复的过程。
(大表的)还原过程中。我输入了以下查询:
select * from information_schema.processlist;
我注意到一行显示了表格的插入命令,如下所示:
INSERT INTO table_name VALUES (value1, value2, value3),
(value4, value5, value6),
(value7, value8, value9);
根据我目前的知识,一次插入更多的行值会更有效,例如:
INSERT INTO table_name VALUES (value1, value2, value3),
(value4, value5, value6),
(value7, value8, value9),
(value10, value11, value12),
(value13, value14, value15),
(value16, value17, value18);
所以我的问题是,如何在恢复过程中一次增加插入的行数(如上图所示)?如果是这样,是否有限制或任何暗示,如果我想增加它来表示..一次100行?