数据条数太多,插入到数据库有延迟,怎么解决

数据条数太多,插入到数据库有延迟,怎么解决,第1张

1我们往数据库中导入的数据通常是有固定的模板的,也就是有列头,但是可能excel中的一条数据分布存储在不同的数据表中,那么我们怎么来导入了,我们可以在类文件中直接拼接sql语句插入,这样做的话我认为比较麻烦。我的做法是:在数据中建一个中间表暂且叫做Temp表跟excel中列一一对应,其中表中多加state列用来标识数据验证失败还是成功的(0代表数据没有问题,-1代表有问题)、failReason记录导入失败原因,然后再添加一个配置文件来做excel列和数据表的映射。 2要导入的数据通常要做验证,那些不符合导入规则的数据时不允许或者不能导入的。我把数据分两步来验证,一部分在代码段验证,一部分在数据库验证。至于怎么分那就自己去根据情况分析了。我是把诸如字符长度限制,正则表达式规则限制等放 在代码段验证,把诸如数据库中字典值是否存在等要访问数据库的验证放在数据中验证,这样的话就可以减少访问数据库的次数。把再客户端验证过的数据,不管是通过的不同过的都插入到temp表中,只是state值不同。 3然后怎么把插入temp中数据分别插入到不同的数据表中了,大家一定想到了触发器,没有错,我用的就是after触发器,在我把excel中的数据插入到temp表中的时候,那么就会触发after触发器,在触发器中对插入的数据进行处理,如果插入的数据state值为-1,代表在代码端的验证就没有通过,那么就不需要进行下一步处理了,如果state值为0,那么在触发器中接着处理,比如检测字典值在字典表中存不存在等,如果不满足要求就把temp表中的当前插入的记录state值改成-1,把校验失败原因更新到failReason字段中,不再处理。如果一切校验都没有问题的话,那么就编写插入语句,把数据插入到不同的表中去。 4数据导入完成了,那么那些有问题数据怎么办了?把它查询出来生成一个按原模板后加一列“失败原因”导成excel文件,其实就是state值为-1的那些记录,然后返回给用户查看。 通过以上步骤之后那么整个导入功能就完成了,以上只是一种思路,望大家完善。 本站技术原创栏目文章均为中睿原创或编译,

加快MySQL插入速度可循下列手段去做:

1)数据表使用尽量少的索引

2)合理设计表结构、尽量插入冗余量较小的信息,避免插入多余、重复和无用的信息;

3)尽量减少应用程序与数据库之间的网络往返量(如使用存储过程等);

4)数据表使用MyISAM存储引擎替代默认的InnoDB存储引擎。在不需要支持事务的情况下,MyISAM引擎表的插入速度要远高于InnoDB引擎表,因为前者不需要增加额外的事务、回滚和崩溃修复等系统开销,自然插入速度要比后者迅速的多;

5)减少并发量、提升硬件。

不关数据库的事,看你是怎么去插入数据,表对表插入和是循环读取数据一条一条插入

查询记录假设花费时间T,

一条一条循环插入30数据就要花费: 遍历查询时间T+插入时间

表对表插入30万数据就等于耗费: (遍历查询时间T+插入时间)匹配检查时间

从Excel、ACCESS、SQL、Prox插入到Oracle本身就慢得出奇,ADO方法对Oracle处理方式并没有做太大的优化,我平常往Oracle插入数据也是这样,本来以为Java开发会节省一点时间,也一个鸟样

索引的作用在于提升查询的效能,但是这是以降低插入、修改、删除 *** 作的性能为代价的。举例,在插入数据的过程中,数据引擎既要将数据写入,同时又要维护索引,可能还要判断主键重复等,对性能有一定影响。建议:在插入大量数据时,可以在插入数据前先删除索引,插入 *** 作完成后再建立索引。这样避免了引擎在插入数据的同时维护索引,新建的索引也会更加整齐连贯。

你是用insert语句,还是用oracle的导入功能?

反正插入数据快的话,你先把索引的语句备份一下,然后全部drop掉

然后再执行插入 *** 作,插入结束后再建立索引

反正这事也快不了,你先看看我说的那种得多长时间吧

一条数据插入4、5秒肯定是很慢了,不然人家大型系统数据割接一次插入几百、上千万数据怎么搞?具体情况具体分析,当时主机CPU运行情况,磁盘IO运行情况,数据库中是否处于等待等,这些都是有可能造成插入数据缓慢的原因。提问要讲方式方法,你什么有用的信息都没有,你让别人怎么帮你。

以上就是关于数据条数太多,插入到数据库有延迟,怎么解决全部的内容,包括:数据条数太多,插入到数据库有延迟,怎么解决、如何提高mysql 的插入速度,高手请帮忙、30万的数据,往生产库里面插入的时候,耗时3-4个小时,太慢了,怎么解决啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9484797.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存