依赖: <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.9</version> </dependency> <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <d…
读取Excale表返回一个集合: package com.shiliu.game.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Field; import java.lang.reflec…
需求:在web页面操作,一次导出百万条数据并生成excel 分析: 1.异步生成Excel,非实时,完成后使用某种方式通知用户 2.生成多个excel文件,并打包成zip文件,因为一个excel容纳不了这么多数据,即使分别放在不同的sheet中也不行,文件太大,打开需要很长时间,用户体验不好 3.如果对数据格式没什么要求,可考虑导出csv文件,字符流,比excel快不少 4.后台可开多个线程,分别生成excel文件,然后再合并 5.可使用poi,但是poi是先将数据放在内存,然后再导出,所以建议…
背景 最近有个学弟找到我,跟我描述了以下场景: 他们公司内部管理系统上有很多报表,报表数据都有分页显示,浏览的时候速度还可以.但是每个报表在导出时间窗口稍微大一点的数据时,就异常缓慢,有时候多人一起导出时还会出现堆溢出. 他知道是因为数据全部加载到jvm内存导致的堆溢出.所以只能对时间窗口做了限制.以避免因导出过数据过大而引起的堆溢出.最终拍脑袋定下个限制为:导出的数据时间窗口不能超过1个月. 虽然问题解决了,但是运营小姐姐不开心了,跑过来和学弟说,我要导出一年的数据,难道要我导出12次再手工合…
(1)100W条insert语句在一个连接内一句一句加 花了01:17:19.0542805 (2) SqlBulkCopy 插入100W条数据 设置BatchSize=500 耗时:00:03:29 (3) SqlBulkCopy 插入100W条数据 设置BatchSize=10000 耗时:00:00:48.8999099 (4) SqlBulkCopy 插入100W条数据 设置BatchSize=100000 耗时:00:00:15.7574742 (5) SqlBulkCopy 插入10…
快速生成100W条数据,生成的时候是顺序生成,取的时候是随机取用,生成100W条数据大概一分多钟,比网上其他代码速度要快很多 )) --truncate table tb --select top 1 id from tb order by NEWID() --select ID from tb where id ='190300' ) from tb SET NOCOUNT ON; begin ) ))) end begin insert into tb )),) ' waitfor dela…
亲测有效,三万条数据秒秒钟导出 先进行数据表插入数据 ini_set('memory_limit','1024M'); //设置程序运行的内存 ini_set('max_execution_time',0); //设置程序的执行时间,0为无上限 ob_end_clean(); //清除内存 ob_start(); $in = 0; for($i=2880;$i<=30000; $i++) { $data = ['uname'=>'uname:'.$i, 'aname'=>'账号:'.$i…
向数据库添加100W 条数据 性能测试 : 参考的相关网站目录: JDBC实现往MySQL插入百万级数据 https://www.cnblogs.com/fnz0/p/5713102.html MySql 的批量操作,要加rewriteBatchedStatements参数 http://blog.csdn.net/ptzrbin/article/details/21024207 JDBC事务控制管理 http://blog.csdn.net/caomiao2006/article/detail…
MySQL CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(45) NOT NULL DEFAULT '', `age` tinyint(3) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 测试数据 CREATE DEFINER=`root`@`localhost` PROCEDURE…
阅读本文大概需要 2 分钟. ▌目录 多线程插入(单表) 多线程插入(多表) 预处理 SQL 多值插入 SQL 事务( N 条提交一次) ▌多线程插入(单表) 问:为何对同一个表的插入多线程会比单线程快?同一时间对一个表的写操作不应该是独占的吗? 答:在数据里做插入操作的时候,整体时间的分配是这样的: 链接耗时 (30%) 发送 query 到服务器 (20%) 解析 query (20%) 插入操作 (10% * 词条数目) 插入 index (10% * Index的数目) 关闭链接 (10…
数据库显示数据正常被插 插入一条打印一次数据,也是正常的,但是执行完,list就全部变成了最后一条数据.很奇怪 单步调试 给list插入第一条数据 model是6607 连续插了多条数据都是6607 而且所有的值都变成了一样的 所以是,每次向list插一条数据都必须还是一个新的 model? 检查代码,果真 在解析excel之前只实例化了一个model,所以无论怎么添加数据,都是刚才的哪一个model name所有的数据都是同一条也就不足为奇了 知道问题了,就好改了…
实现功能 --批量导出excel 文件,配置一个sheet多少条数据,根据查询数据量的多少确定生成几个sheet页. pom 文件导入ExcelUtils工具包,依赖于poi包. <!-- https://mvnrepository.com/artifact/org.hellojavaer/poi-excel-utils --><dependency>    <groupId>org.hellojavaer</groupId>    <artifact…
Ireport 报表导出 Poi + ireport 导出pdf, doc ,excel ,html 格式 下面是报表导出工具类reportExportUtils 需要导出以上格式的报表 只需要调用本工具类的exportmain 方法即可. import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import jav…
废话不多说直接开始. 在windows命令行下登录mysql,创建一个test_01数据库,创建一个user表,并插入一条数据,如下 一.导出数据库test_01 1.退出数据库,在命令行中输入 mysqldump --no-defaults -u root -p test_01 >d:\test01.sql(没有冒号,直接按回车) 2.输入密码 说明:必须是在系统下的命令行, --no-defaults 不能省(原因还不明), test_01是源数据库,01.sql是目标数据库 结果:在d:\…
最近做个项目,需要导出DataGrid显示的数据,中间遇到了不少的坑,在此纪录一下,方便以后查看,也希望能给用到的人,一点帮助. 导出DataGrid显示的数据,并不是导出DataGrid的ItemsSource,这两者是有区别的,这里纪录的是导出DataGrid的显示数据,也就是所见即所得的东西. 举个例子: 我这里有个一个People的实体类,它包含了6个字段,如下 public class People { public string Name { get; set; } public i…
想了几种方法: 1.将所有符合条件的对象集合都查出来,在代码里做随机. 2.先查出所有符合条件的id,再代码随机需要抽查数量的id,再 到数据库 中 in. 3.利用order by rand() limit ,随机出需要抽查数量的id,再到数据库中 in   条件过滤后,大概15万条数据,测试,第3种方法相对快,但是抽查数量到 7k, 8k, 1w 时候,第2种会稍微快点.  知乎上:https://www.zhihu.com/question/20151242  建议用第2种. 可能测试不够…
1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) Apache POI读取excel文件数据 1.1 快递员的条件分页查询 --关键 需要将查询条件 和分页条件都绑定到一次请求中 1. 提供工具方法:将表单序列化为json对象 //工具方法:将表单中输入项格式化为json对象 {"input的name":"input的value…
项目背景 数据来源:所有数据均为外部导入,最大数据量在10w+ 输出数据:导出经过业务处理之后的数据 使用框架:fastadmin 涉及的问题: 1.数据读取 2.数据保存 使用数据:10w+ 解决方案: 方案一:直接利用框架提供的功能导入Excel数据 结果:一分钟之后超时,最终执行完成时间在3分钟左右 分析:其中数据读取和数据保存(使用模型批量保存拆分为100,1000,10000)都十分耗时,而且在超时之后,系统其它功能无法响应. 可行性:不可行 方案二:将Excel数据换成csv格式 结…
大家好,我是大明哥,一个专注于[死磕 Java]系列创作的男人 个人网站:https://www.cmsblogs.com/.专注于 Java 优质系列文章分享,提供一站式 Java 学习资料 某天我正在工位上听着 Vicotry,愉快地敲着 hello world ,这感觉就像我写的代码能征服世界.突然运维给我打了一个电话,说我们某台服务器 OOM 了,要我过去看下,这感觉就像 xxx,你懂的. 去运维室.登录服务器.查看日志.....一顿操作猛如虎,看到一个 List 对象 600MB +(…
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1. 背景 项目中有1000万条历史案卷,为某地方坐标系数据,我们的真实需求是将地方坐标系坐标反转成WGS84坐标,如果现在需要将其转换成百度坐标系数据.常规方案是先建立好整个该市的本地坐标和百度坐标之间的控制点库后再进行转换.但是在具体实施中发现转换特别慢,由于控制点库也有200多万条记录,大概一个点需要一秒钟才能转换完. 2.将Update变成Insert关键字段值…
正常查询语句中TOP的运用: SELECT TOP 1000 * FROM MP_MemberGrade   随意更新一张表中满足条件的前N条数据: UPDATE TOP (1) MP_Member SET FKGradeID=2 WHERE IsDeleted=2   更新A表中满足B表前N条记录的数据 UPDATE MP_Member SET FKGradeID=2 FROM MP_Member A LEFT JOIN (SELECT TOP 10 * FROM MP_MemberGrade…
一般来讲,EXP/IMP是上一代导出导入程序,EXPDP/IMPDP是新一代的导出导入程序.对于大数据量的导出导入首选EXPDP/IMPDP,可以用到并行度,对表空间等操作上也更加的灵活.对于小数据量的迁移,可以使用exp/imp,操作更简单. 需求: exp 导出  A库(11.2.0.3)zjy用户的分区表t_jingyu_part部分数据,数据表空间 dbs_d_jingyu,索引表空间dbs_i_jingyu. imp 导入  B库(11.2.0.4)test用户下,test用户的默认表…
我用到的数据库为,mysql数据库5.7版本的 1.首先自己准备好数据库表 其实我在插入1000万条数据的时候遇到了一些问题,现在先来解决他们,一开始我插入100万条数据时候报错,控制台的信息如下: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (4232009 > 4194304). You can change this value on the server by setting the max_al…
SQL脚本 select * from users; 方式一: insert into users(name, age, course_id) VALUES("test",1, "0");insert into users(name, age, course_id) VALUES("test",1, "0");insert into users(name, age, course_id) VALUES("test&q…
不同的数据库,支持的SQL语法略有不同,以下是不同数据库查询前n条数据的SQl语句 SQL Server(MSSQL) SELECT TOP n * FROM table_name ORACLE SELECT * FROM table_name WHERE ROWNUM <= 10; MySQL SELECT * FROM table_name LIMIT 10;…
from : http://www.th7.cn/Program/net/201502/387849.shtml mvc的视图太强大了,个人刚刚接触.(初级菜鸟,懂的不多,往大神们指点)需求是,客户点击添加按钮弹出一个框选择产品后直接添加到表单中,在表单可以自己更改产品的数量,以及一些信息.mvc表单提交的时候只要name属性和要提交的控制器里面方法的参数一样mvc就能自动识别,利用这个好处就可以很轻松的提交多条数据. 如图显示 前台代码(没有用mvc的一些扩展方法,@Html 之类的,我是为了…
mvc的视图太强大了,个人刚刚接触.(初级菜鸟,懂的不多,往大神们指点)需求是,客户点击添加按钮弹出一个框选择产品后直接添加到表单中,在表单可以自己更改产品的数量,以及一些信息.mvc表单提交的时候只要name属性和要提交的控制器里面方法的参数一样mvc就能自动识别,利用这个好处就可以很轻松的提交多条数据. 如图显示 前台代码(没有用mvc的一些扩展方法,@Html 之类的,我是为了说明添加多个表单) <form action="/Home/Add" method="p…
今天组长给个任务说要给摄像头触发一个列表.让缓存5条数据,每次摄像头触发更新一条,丢掉最老的一条数据.原来的update是直接更新掉一条,没带缓存的.然后搞了个sql语句,是这样的: UPDATE Camera_RecordSET CarlotName = @CarlotName, PlateNumber = @PlateNumber, time = @time, IP = @IP, nLane = @nLane, EventName = @EventName, Picurl = @Picurl…
当slider数据列表是动态获取时,如果数据结果只有2条数据时,slider列表会多复制俩个,通过下面的slideChange方法做个判断可以解决这个bug 第一步:添加slideChande方法 <ion-slide-box auto-play="true" does-continue="true" slide-interval="3000" on-slide-changed="slideChanged($index)"…
SQLServer比较两条数据是否相同 直接比较可能会一个一个字段的比较,也可以将多个字段拼成一个串然后比较,这里有个hash值比较的方法,很好用 用法 将需要的比较的column放进去,逗号隔开,只要保证包含相同的column,顺序无关,因为这个是hash值的和. select HashText = checksum( Q.FName , Q.LName , Q.MName , Q.Address1 , Q.Address2 , Q.City , Q.State , Q.Zip) from M…