![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库操作
文章平均质量分 76
起个名字真好难
这个作者很懒,什么都没留下…
展开
-
使用java-sizeof估算对象占用内存的大小
实际开发中,如果在内存中一次性放入大量的数据,一旦超过内存设置的最大值,很容易出现堆溢出的情况,在当前环境允许的情况下,通过模拟对象估算生产实际对象在内存中占用空间大小就显得很有必要了。问题:批处理数据时使用lambda同步流导致CPU飙满,内存占用超过90%,极大侵占了其他的业务处理的资源解决方式:改写数据处理方式,控制内存占用量和CPU使用量关键点:确定数据处理规模,估算数据在内存中占用的空间大小,适时触发GC回收机制,及时清理结果。首先,模拟数据量在内存中占用的大小:1.添加依赖原创 2021-12-20 11:04:44 · 1249 阅读 · 0 评论 -
Oracle三班倒分时段查询数据的一种实现方式
现有库表如下:需求:在任意时间显示上一班车间的库存率情况,并用class字段进行标识。班次安排:08:15:00~16:15:0016:15:00~00:15:0000:15:00~08:15:00需求分析:如何按照不同的时间段将目标数据筛选出来? 目标数据筛选出来后怎么拿到当前时间上个班次的数据?需求实现:由于仅仅考虑当前时间的上个班次,因此对当前时间来说,确定上个班次的时间段筛选数据即可,有三个班次,需要做大量判断。考虑到班次是固定的,时间跨度上...原创 2021-02-28 22:37:36 · 818 阅读 · 0 评论 -
记一次存储过程和prepareStatement执行速度的比较
这两天在存储过程和prepareStatement的选择上栽了个跟头,记录一下。需求是终端通过网关把数据放入redis中,综合考虑决定使用redis的发布订阅模式来接收数据入库,考虑到获取数量的不确定和多线程的安全性,最终决定了使用linkedblockingqueue来进行二次接受redis数据,防止直接接收redis订阅消息处理不及导致的数据丢失,为了提高数据的写入速度,创建线程池并行执行入库操作。在决定使用这种方式前其实测试过直接接收数据通过存储过程入库的方式,通过比较插入数据的数据量和实际入原创 2020-11-10 17:57:53 · 381 阅读 · 0 评论 -
Cause: java.sql.SQLException: Data truncated for column ‘XXX‘ at row X问题
由于业务需要在持久化数据时添加一个字段,结果测试就出现了以下问题:"org.springframework.dao.DataIntegrityViolationException: \r\n### Error updating database. Cause: java.sql.SQLException: Data truncated for column 'VIDEO_STATUS' at row 1\r\n### The error may exist in file [E:\\video-co原创 2020-10-09 15:35:37 · 5162 阅读 · 0 评论 -
MySQL 使用存储过程插入千万数据
由于项目有数据导入数据库的需要,因此,准备一些测试数据也是很有必要的。我从公司服务器上导出了一张中间表,字段不多,数据量960w多点,用作平时练手,不过随着使用的深入,发现这点数据量已经不能满足我的需要了,决定动手写个存储过程人工增加点数据量,废话不多说了,看图,这时导出时的数据量,就是没增加前的数据量:导入到本地数据库后,试着查询了一下count,速度在15s左右,还能接受,查询中位的一...原创 2018-09-04 18:04:29 · 2671 阅读 · 0 评论