3

我试过搜索这个,但到目前为止,我只找到“导出没有数据的表模式”的结果,这与我想要做的完全相反。有没有办法从 SQL 表中导出数据而无需脚本重新创建表?

如果有人有更好的解决方案,这就是我要解决的问题:我有两个数据库,每个数据库都在不同的服务器上;我将它们称为原始数据库和分析数据库。原始数据库是“真正的”数据库,它收集发送到其服务器的记录,并使用事务 InnoDB 引擎将它们存储在一个表中。分析数据库位于内部 LAN 上,旨在镜像原始数据库,并将定期更新以匹配原始数据库。之所以这样分开,是因为我们有一个程序会对数据进行一些分析和处理,而我们不想在实时服务器上进行。

因为分析数据库只是一个副本,它不需要是事务性的,我希望它对其表使用 MyISAM 引擎,因为我发现将数据导入和查询要快得多。问题是,当我从实时原始数据库导出表时,表模式也被导出,表引擎设置为 InnoDB,所以当我运行脚本将数据导入分析数据库时,它会删除 MyISAM 表并将其重新创建为 InnoDB 表。我想自动化这个导出/导入数据的过程,但是生成的 sql 脚本文件将表引擎从 MyISAM 更改为 InnoDB 的问题阻止了我,我不知道如何解决它。我知道的唯一方法是编写一个可以直接访问实时原始数据库的程序,进行查询,

4

2 回答 2

7

像这样?

mysqldump --no-create-info ...
于 2012-09-27T17:08:44.453 回答
1

使用no-create-info选项

mysqldump --no-create-info db [table]
于 2012-09-27T17:09:49.077 回答