前言
假如有几万、几十万条数据需要写入到数据库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

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

被折叠的 条评论
为什么被折叠?



