我们正在运行一项服务,我们必须为每个新站点设置一个新数据库。数据库完全相同,因此我们可以简单地从备份文件或克隆从同一服务器上的示例数据库(仅为克隆目的创建,不会在那里运行任何事务,因此无需担心损坏数据)进行转储。它自己包含大约100个表和一些数据的数据库,需要大约1-2分钟才能导入,这太慢了。
我正试图找到一种尽可能快的方法,首先想到的是复制示例数据库data_dir中的文件,但似乎我还需要以某种方式编辑表列表或mysql将无法读取我的新数据库的表,尽管它仍然显示在那里。
答案 0 :(得分:1)
你正在以错误的方式复制数据库,如果你正确地执行它会更快。
以下是复制数据库的方法:
create database new_database;
create table new_database.table_one select * from source_database.table_one;
create table new_database.table_two select * from source_database.table_two;
create table new_database.table_three select * from source_database.table_three;
...
我刚刚进行了性能测试,这需要81秒才能在700万个表行中复制750MB的数据。大概你的数据库小于那个?
我认为你不会找到更快的东西。您可以做的一件事就是已经有待处理的重复数据库队列,随时可以随时拾取和使用。因此,您根本不需要创建新数据库,只需从可用库中重命名现有数据库即可。并运行一个cron作业以确保队列永远不会为空。
答案 1 :(得分:-2)
为什么mysql无法读取或在表列表中更改了什么?
我认为可能存在mysql读取权限的问题,否则会没问题。
由于