我正在开发一个大约5GB的MySQL / InnoDB数据库的开发副本。
我需要经常恢复它以测试alter脚本,并且使用mysqldump文件需要相当长的时间。文件本身大约是900MB,加载大约需要一个小时。我已经删除了不重要的表的数据插入,并完成了扩展插入等,但它仍然很慢。
有更快的方法吗?我想从... / mysql / database-name,id_logfile#和ibdata1复制数据库文件,并在我需要'重置'数据库时将它们复制回来,但这对于InnoDB是否可行?是一个数据库的ibdata文件?我只看到一个,即使我在这个盒子上有多个InnoBD数据库。
谢谢!
答案 0 :(得分:1)
我不知道它是否会更快 - 事实上,它可能会更慢,这取决于您的测试对数据进行多大程度的改变 - 但是如果您将所有测试放在一个事务中然后滚动它会怎么样?回来?
答案 1 :(得分:1)
我相信您只需复制为数据库命名的文件(服务器守护程序已关闭),一切都应该正常。看起来似乎对样本数据库进行一点测试应该快速回答,不是吗?
答案 2 :(得分:1)
使用磁盘的LVM快照。加载数据(冗长的进程)并拍摄快照(秒)。然后,每当您需要返回快照时,再玩LVM游戏 - 再过几秒钟就可以重新加载并重新克隆任何大小的磁盘。
答案 3 :(得分:0)
您可以使用http://dev.mysql.com/doc/refman/5.1/en/multiple-tablespaces.html
执行某些操作请参阅ALTER TABLE xxx IMPORT TABLESPACE选项。
答案 4 :(得分:0)
对于innodb备份和恢复速度,您可能需要查看mydumper / myloader - 由于多线程性质http://vbtechsupport.com/1716/
,因此比mysqldump快得多