1.需要判断是否存在或者去重的时候使用HashSet
这个效率是最快的,处理过6000个设备,每个设备生成12个数据点,并用ArrayList存储,当存放的时候判断测点是否存在直接使用了arraylist的contains,需要44s,而利用HashSet是0秒级
2.插入mysql数据库。避免插入重复数据:利用唯一索引+insert ignore into实现,而不要使用临时表判断。
临时表判断会导致全表数据轮询,当存储的数据表数据量越来越大,所需时间越来愈多,
导入600个设备,每个设备生成20个测点,目前是1个小时,但是使用唯一索引+insert ignore into实现结果是10s级别
临时表判断写法
唯一索引+insert ignore into写法
3.POI导出Excel
如果数据量少于65535行,使用HSSFWorkbook
HSSFWorkbookwb = new HSSFWorkbook();
HSSFSheet sheet1= wb.createSheet("test");
如果数据量较大或者海量,使用SXSSFWorkbook,不要使用XSSFWorkbook ,会造成内存溢出OOM
SXSSFWorkbookwb = new SXSSFWorkbook();
SXSSFSheet sheet1= wb.createSheet("test");