Mysql使用MySqlBulkLoader实现批量写入

本文介绍了如何使用MySqlBulkLoader工具高效地将大量数据批量写入MySQL数据库,包括数据转换为DataTable和CSV文件的过程,以及注意事项如配置文件导入和处理唯一索引冲突。

前言

假如有几万、几十万条数据需要写入到数据库Mysql中,那么一条一条循环写入会很耗时,如果一两百条批量写入也会比一条条的快一点,那么有没有一次性插入一万或者更多的方法?当然有使用MySqlBulkLoader可以解决这个耗时的问题。


一、MySqlBulkLoader

MySqlBulkLoader主要的实现方式:将需要插入的数据转成DataTable,DataTable转成一个CSV文件,将CSV文件使用批量导入的形式导入到数据库里面去。

注意:

1)数据库连接地址需要添加配置AllowLoadLocalInfile=true,允许本地文件导入;

   Data Source = 数据库地址; Port = 端口; Initial Catalog = 数据库名; User Id = 用户名; Password = 密码;AllowLoadLocalInfile=true;

2)插入的时候会返回插入行数,但是检查所有的数据都正确,也没有报异常,却返回了插入数量为0,可以检查表是否有唯一索引,插入的数据是否违反了唯一索引。

二、代码实现

需要引用sing MySql.Data.MySqlClient,其中的table的名字要使用数据库的名字,比如数据库表名字叫做user_tb,那么table.TableName=“user_tb”。

        /// <summary>
        ///大批量数据插入,返回成功插入行数
        /// </summary>
        /// <param name="connectionString">数据库连接字符串</param>
        /// <param name="table">数据表</param>
        /// <returns>返回成功插入行数</returns>
        public static int BulkInsert(DataTable table)
        {
   
   
            if (string.IsNullOrEmpty(table
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值