博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
怎么高效率批量插入1000条数据到数据库
阅读量:4101 次
发布时间:2019-05-25

本文共 598 字,大约阅读时间需要 1 分钟。

问题:

每隔5毫秒就有30多条数据发送过来,然后需要及时插入到数据库,怎样才能更高效插入到数据库?要求:插入到数据库所耗的时间必须要比发送的时间快。目前我的做法是把批量数据先放在DataTable 中,1s后一次性提交DataTable中的数据,用的方法是adapter.Update(DataTable),这种方法效率上还是比较慢,内部实现应该还是一条一条插入的,只不过少连了几次数据库

 

回答一:

提供一个思路供参考:

使用数据缓冲区+多线程完成这个功能, 先用队列作为数据缓冲区, 一个线程专门负责读取数据, 将读取到的数据保存到队列; 另一个线程专门负责保存数据, DbConnection不能用sqlbulkcopy, 在Insert语句中使用 Union 拼接总是可以的吧, 一次性地拼接30条数据保存到数据库中. 我有试过用此种方法接收处理1万条记录, 基本上可以确保即时地将数据保存到数据库中.
当然, 如果接收到的数据量足够大足够快, 那可能还得考虑一下 sp1234 提到的 内存数据库 的问题。

回答二:

目前我的做法也是用一个列队存储数据,一个线程存,一个线程取,取的过程中需要分析+发送+插入,所耗时间远远不能达到那边传数据速度,所以就会产生数据堆积,然后越堆越多...

回答三:

5毫秒??还多线程?。。。

线程多效率就更低了。
还是考虑内存数据库吧 fastdb之类的

转载地址:http://gwwsi.baihongyu.com/

你可能感兴趣的文章
【鹅厂面试题】——-关于微信红包取中间值(笔试题)
查看>>
【猫厂面试题】——-2016(Web前端)
查看>>
【猫厂面试题】——-阿里常问面试题目汇总及答案(JAVA)
查看>>
【设计模式】—-(23)访问者模式(行为型)
查看>>
【Python】学习笔记——-2.0、Python基础
查看>>
【Python】学习笔记——-2.1、Python的数据类型与变量
查看>>
【分布式缓存】——-基于redis分布式缓存的实现
查看>>
【鸟叔的Linux私房菜】学习笔记(1)——Linux系统入门
查看>>
【2016——-编程语言排行以及优缺点分析】
查看>>
【深入理解JVM】学习笔记——-1、JVM基本结构
查看>>
Windows点击任务栏中的文件夹直接进入资源管理器界面设置
查看>>
【生活小记】——-1、年轻人不要老熬夜!
查看>>
最常用的linux命令
查看>>
【Python】学习笔记——-2.2、字符串和编码
查看>>
【Python】学习笔记——-2.3、使用List和Tuple
查看>>
【Python】学习笔记——-2.4、条件判断
查看>>
【Python】学习笔记——-2.5、循环
查看>>
【Python】学习笔记——-2.6、使使用dict和set
查看>>
【Python】学习笔记——-3.0、函数
查看>>
【Python】学习笔记——-3.1、调用函数
查看>>