pigg
最近在做项目的时候涉及到大数据的校验和插入。问题描述:通过excel导入客户信息表至数据库中指定表。
刚看到该问题,自然而然就是想直接将Excel解析至内存。在内存中遍历对应的客户List集合,取出每一个Customer和数据库中的数据进行比对判断该用户是否存在,存在的话在重复值上计数,不存在的话插入数据库。但是当数据达到10w+的时候,那个速度都不能直视了。思考解决方案,首先采用的解决方案:校验放在外层,里层进行判断分多线程执行。每个线程5k数据。只有5-6 k数据时,还可以。但是当数据量达到10w+时,速度还是很慢。后来测试发现,单单只是用插入其实速度还是可以的,但前面加上验证之后,就严重拖垮了插入速度。但验证还必须使用,苦恼了好一阵。后来通过在网上查找相关资料发现,有一个比较好的解决方案:在数据库的对应校验字段建立唯一索引,在插入的时候让数据库自己进行校验。代码逻辑和数据库分摊压力。在使用save时,由于建立了唯一索引所以插入会出问题,报DataintegrityViolationException的异常。在Try,catch中将其捕捉,进行重复值的累计。这时,之前想要的效果已经实现。
相关阅读
数据库 “数据库”是以一定方式储存在一起、能够多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。 【基本
用户的价值可分为现有价值和未来价值,本文主要讨论现有价值。目前中国有超过400万APP,有的已经远去,有的还活在当下,做为一名移动产品
出于复试的必要性,很努力地复习了数据库的内容,大学没好好学习的东西,后期都是要花费大量的时间去弥补的。很多东西都是逝去了才知道
目前外卖代运营市场的主要痛点就是人力成本高,线上运营专业性太强,需要依赖大量的数据分析进行优化等等,这让很在多线下经营有声有
一、树型关系的数据表 不少程序员在进行数据库设计的时候都遇到过树型关系的数据,例如常见的类别表,即一个大类,下面有若干个子类,某