如何将大数据表复制到 MySql 表?

Posted

技术标签:

【中文标题】如何将大数据表复制到 MySql 表?【英文标题】:How to copy large datatable to MySql table? 【发布时间】:2012-09-09 23:18:10 【问题描述】:

我正在尝试将在应用程序中动态创建的大型数据表(超过 1000 行的列)复制到使用 c#、WPF 的 mysql 表中。 我已经搜索了各种方法来做到这一点,但没有成功实施。我认为 MySqlDataAdapter 类是我应该使用的,但我不能让它工作。这就是我试图做的......

        MySqlConnection con = new MySqlConnection(MyConString);
        MySqlCommand comm = new MySqlCommand("Select * From kinectdata", con);
        MySqlDataAdapter test1 = new MySqlDataAdapter(comm);
        test1.Update(skelData);

这种传输的速度也很重要,所以我不想调用插入或更新语句 1000 次。

非常感谢您的反馈! M

【问题讨论】:

【参考方案1】:

1000 行不算多,用数据库术语来说不算什么,使用 insert 应该很快。不超过 2 秒。

在您的示例中,您必须声明命令类型并设置查询和命令文本。

【讨论】:

【参考方案2】:

您可以构建一个插入所有 1000 行的 INSERT 语句。

INSERT INTO table VALUES (1,2,3), (4,5,6), (7,8,9);

【讨论】:

太好了,谢谢!我尝试了数据适配器和命令生成器,但直接一行命令要快得多。 @Keith 这个插入语句是否受大小限制?我无法想象你能以这种方式插入一 GB 的数据 @fubo:是的,可能有 SQL 字节限制。而且您可能不想使用所有的 DB 内存来保存一条语句。将您的数据分成具有合理插入大小( @Keith:感谢您的回复。我想你是对的。我试图插入大约 5MB 并且它没有任何问题 - 但它需要一段时间:)。可惜了,mysql对于这种情况没有带参数的解决方案。

以上是关于如何将大数据表复制到 MySql 表?的主要内容,如果未能解决你的问题,请参考以下文章

MySQL:将大表拆分为分区或单独的表?

linux MySQL 如何复制表数据或表结构到新表中

MySQL如何复制表中的一条记录并插入

如何将mysql的一个完整数据库全部复制到另外一个数据库?

如何复制MySQL数据库或表到另外一台服务器

如何将数据从一个表复制到 MySQL 中的另一个新表?