c中往mysql里批量插入上万条数据,有比较高效的方法吗

首先, 插入上万条数据,对于数据库来说并不是“很大”的工作量,一般配置的笔记本电脑都可以在1分钟内完成。 所以最简单、最灵活的办法还是写SQL语句。如果不希望DB编译器每次执行都编译SQL的话,可以使用存储过程,直接调用,性能上会好很多。也比较简单。(几万条数据怎么地也得要时间去处理,所以不...
c中往mysql里批量插入上万条数据,有比较高效的方法吗
首先, 插入上万条数据,对于数据库来说并不是“很大”的工作量,一般配置的笔记本电脑都可以在1分钟内完成。 所以最简单、最灵活的办法还是写SQL语句。

如果不希望DB编译器每次执行都编译SQL的话,可以使用存储过程,直接调用,性能上会好很多。也比较简单。
(几万条数据怎么地也得要时间去处理,所以不可能特别快的。)

如果由于各种原因,导致这个插入还是很慢, 而且你的MYSQL又是5.0以上版本的话,可以使用BulkCopy来进行批量操作。
BulkCopy的原理就是Client直接把一个数组(DataTable)传给DB,然后传入表名,所有的编译、操作都由DB自己完成,效率很高。
引用MySql.Data.dll , 调用MysqlBulkCopy函数即可。

这个函数在处理海量数据插入的时候效率尤为明显, 小量数据反而没什么优势,而且由于传入的DataTable格式必须和表的字段一模一样(空的列也要传进去),导致C#要写很多代码来构造这个数组,所以要你自己权衡用还是不用。
我在自己的电脑上批量插入一亿条数据,Insert写法大概需要1小时,BulkCopy大概只需要5分钟。2016-12-06
mengvlog 阅读 102 次 更新于 2025-10-28 06:09:07 我来答关注问题0
  • 引用MySql.Data.dll , 调用MysqlBulkCopy函数即可。这个函数在处理海量数据插入的时候效率尤为明显, 小量数据反而没什么优势,而且由于传入的DataTable格式必须和表的字段一模一样(空的列也要传进去),导致C#要写很多代码来构造这个数组,所以要你自己权衡用还是不用。我在自己的电脑上批量插入一亿条数...

  •  云易网络科技 MySQL轻松实现一秒插入万条数据MySQL一秒插入条

    MySQL提供了一些批量插入工具,可以更方便地将大量数据导入MySQL。以下是两种常用的批量插入工具。1. 使用MySQL Workbench MySQL Workbench是MySQL官方提供的一款图形化工具,其中包含了一个数据导入工具。使用该工具可以将CSV文件快速地导入MySQL。以下是使用MySQL Workbench导入CSV文件的步骤:① 创建一个新的数...

  • Du知道君 c#中往mysql里批量插入上万条数据,有比较高效的方法吗

    封装成mysql存储过程效率是不错的。总之你的插入的语句要打包到mysql区执行,而不是在C#中逐一执行。

  •  翡希信息咨询 13 秒插入 30 万条数据,这才是批量插入正确的姿势!

    在插入数据的循环中,每达到一定数量就执行一次executeBatch方法提交数据。索引优化:在大量数据插入前,暂时去掉索引。这样可以大大减少写入时更新索引的时间。数据插入完成后,再重新创建索引。数据库连接池:使用数据库连接池来减少数据库连接建立和关闭的开销,提高性能。数据库参数调整:增加MySQL数据库缓冲区...

  •  张三讲法 批量向MySQL导入1000万条数据的优化

    1.用start transaction关闭mysql的自动提交,合理设置插入批量大小,不要一条数据提交一次。2.修改表的存储引擎InnoDB为MyISAM。(因为InnoDB中存在redo log日志,每次更新表的结果先写入redo log中,等redo log满了之后再写入磁盘而这个过程是会停止其他所有的事务)3.优化SQL(一条SQL语句插入多条数据)4....

檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部