当前位置: 首页 > news >正文

C#大批量数据插入MySQL数据库的性能问题

1.将表的引擎设为myisam

 

2.每1000条数据提交一次

这个是sqlite数据库批量插入的解决方案,可参考思路

最近处理一个将csv内容导入到sqlite数据库中,使用了事务(BEGIN TRANSACTION; sql语句; COMMIT;)

测试发现一次1000条导入,反而比10000条导入要快,总共6万多条数据,整下下来竟然快有6分钟,真是奇怪

    var iCount = 0;
            var dDataTime = DateTime.Now;
            var mCsvHelp = new CsvHelper();
            var mDataTable = mCsvHelp.GetCsvData(@"E:\", "scrm_friend");
            var mSql = new StringBuilder();
            var conn = new SQLiteConnection(@"Data Source=E:\mydatabase.db");
            SQLiteCommand command;
            conn.Open();
            for (var i = 0; i < mDataTable.Rows.Count; i++)
            {
                var mRows = mDataTable.Rows[i];
                mSql.Append("Insert Into scrm_friend (friendid,userid,friendname,phone) values(" + mRows[0] + "," +
                            mRows[1] + ",'" + mRows[2] + "','" + mRows[3] + "');");
                iCount = iCount + 1;
                if (iCount > 1000)
                {
                    command = new SQLiteCommand
                    {
                        Connection = conn,
                        CommandText = "BEGIN TRANSACTION;" + mSql + "COMMIT;"
                    };
                    command.ExecuteNonQuery();
                    mSql.Remove(0, mSql.Length);
                    iCount = 0;
                }
            }
            command = new SQLiteCommand
            {
                Connection = conn,
                CommandText = "BEGIN TRANSACTION;" + mSql + "COMMIT;"
            };
            command.ExecuteNonQuery();

            MessageBox.Show((DateTime.Now - dDataTime).ToString());

 

相关文章:

  • MySQL引擎
  • 利用FlashPaper实现类似百度文库功能
  • 未能找到任何适合于指定的区域性或非特定区域性的资源解决
  • 怎样卸载activex控件
  • msxml3.dll 错误'800c0005' 系统未找到指定的资源错误
  • MYSQL 查询表列数
  • FlashPaper打印机未能正确安装的解决办法
  • Macromedia FlashPaper 2的安装方法(XP和Win7)
  • 解决win7下无法安装flashpaper2问题
  • Macromedia FlashPaper 2功能与使用详解
  • asp.net中获取当前url的方法
  • 再谈iframe自适应高度
  • Windows下的Objective-C集成开发环境(IDE)
  • 一步一步的详细步骤在vm虚拟机里安装苹果雪豹系统
  • CodeBlocks no such file or directory错误解决
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • php ci框架整合银盛支付
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 当SetTimeout遇到了字符串
  • 异步
  • ​io --- 处理流的核心工具​
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​linux启动进程的方式
  • ​queue --- 一个同步的队列类​
  • ​学习一下,什么是预包装食品?​
  • #、%和$符号在OGNL表达式中经常出现
  • #etcd#安装时出错
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (分布式缓存)Redis持久化
  • (附源码)计算机毕业设计ssm电影分享网站
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (循环依赖问题)学习spring的第九天
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .NET Core WebAPI中封装Swagger配置
  • .NET 发展历程
  • .NET 回调、接口回调、 委托
  • .NET 设计一套高性能的弱事件机制
  • .Net8 Blazor 尝鲜
  • .NET分布式缓存Memcached从入门到实战
  • .NET运行机制
  • .NET中GET与SET的用法
  • [ IOS ] iOS-控制器View的创建和生命周期
  • [51nod1610]路径计数
  • [Apio2012]dispatching 左偏树
  • [APUE]进程关系(下)
  • [BT]BUUCTF刷题第4天(3.22)
  • [codeforces]Levko and Permutation
  • [Codeforces1137D]Cooperative Game
  • [EFI]ASUS EX-B365M-V5 Gold G5400 CPU电脑 Hackintosh 黑苹果引导文件
  • [GYCTF2020]Ez_Express
  • [Node.js]连接mongodb
  • [Oh My C++ Diary]善用三目运算符(a?b:c)