【发布时间】:2014-04-14 04:53:38
【问题描述】:
我们正在运行一项服务,我们必须为每个新站点设置一个新数据库。数据库完全相同,因此我们可以简单地从同一服务器的备份文件中转储或从示例数据库中克隆(仅为克隆目的创建,不会在那里运行任何事务,因此无需担心损坏数据)。它自己的数据库包含大约 100 个表和一些数据,大约需要 1-2 分钟才能导入,这太慢了。
我正在尝试尽快找到一种方法,首先想到的是复制示例数据库 data_dir 中的文件,但似乎我还需要以某种方式编辑表格列表或mysql 将无法读取我的新数据库的表,即使它仍然在那里显示它们。
【问题讨论】:
-
正在复制多少 GB 的数据?你能告诉我你在做什么需要 1-2 分钟吗?
-
当然,现在它是一个使用 mysql -uusername -ppassword datatabase.dump.sql 的简单恢复数据库。我还将 autocomit、unique_check、foreign_key_checks 设置为 OFF
-
那么这就解释了为什么它很慢,你是从磁盘读取整个数据库,将其转换为 mysql 源代码插入语句,然后以非常低效的格式将整个数据库写入磁盘,然后再次从磁盘读取它,解析大量的 sql 查询,执行它们,最后再次写入所有数据。可怕的想法。这不是复制数据库的方式。