2

我正在开发大约 5GB 的 MySQL / InnoDB 数据库的开发副本。

我需要经常恢复它以测试更改脚本,并且使用 mysqldump 文件需要相当长的时间。该文件本身大约 900MB,加载大约需要一个小时。我已经删除了不重要表的数据插入,并完成了扩展插入等,但它仍然很慢。

有没有更快的方法来做到这一点?我正在考虑从 .../mysql/database-name、id_logfile# 和 ibdata1 复制数据库文件,并在我需要“重置”数据库时将它们复制回来,但这对 InnoDB 是否可行? ibdata 文件是一个数据库吗?我只看到一个,即使我在这个盒子上有多个 InnoBD 数据库。

谢谢!

4

5 回答 5

1

我不知道它是否会更快——实际上它可能会更慢,这取决于你的测试改变数据的程度——但是如果你把所有的测试放在一个事务中,然后回滚呢?

于 2009-04-06T22:49:23.940 回答
1

我相信您可以复制为数据库命名的文件(关闭服务器守护程序),一切都应该很好。似乎对示例数据库进行一些测试应该很快就能回答,不是吗?

于 2009-04-06T22:55:36.033 回答
1

使用磁盘的 LVM 快照。加载您的数据(漫长的过程)并拍摄快照(几秒钟)。然后,当您需要返回快照时,玩 LVM 游戏——同样只需几秒钟即可重新加载和重新克隆任何大小的磁盘。

于 2016-03-02T23:57:02.283 回答
0

你也许可以用http://dev.mysql.com/doc/refman/5.1/en/multiple-tablespaces.html做点什么

请参阅 ALTER TABLE xxx IMPORT TABLESPACE 选项。

于 2010-01-05T22:58:51.030 回答
0

对于 innodb 备份和恢复速度,您可能需要查看 mydumper/myloader - 由于多线程性质,比 mysqldump 快得多http://vbtechsupport.com/1716/

于 2012-01-09T13:33:17.063 回答