2021
08-23
08-23
基于Spring Boot使用JpaRepository删除数据时的注意事项
问题:在SpringBoot中使用JpaRepository的deleteById(IDid)方法删除数据时,首先要使用existsById(IDid)方法判断数据是否存在。如果存在,再删除。否则,删除一个id不存在的数据会抛出org.springframework.dao.EmptyResultDataAccessException异常:2019-01-0215:57:24.122WARNorg.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration$JpaWebConfiguration$JpaWebMvcConfigurationLine:234-spring.jpa.ope...
继续阅读 >
笔者最近工作中遇见一个性能瓶颈问题,MySQL表,每天大概新增776万条记录,存储周期为7天,超过7天的数据需要在新增记录前老化。连续运行9天以后,删除一天的数据大概需要3个半小时(环境:128G,32核,4T硬盘),而这是不能接受的。当然如果要整个表删除,毋庸置疑用TRUNCATETABLE就好。最初的方案(因为未预料到删除会如此慢),代码如下(最简单和朴素的方法):deletefromtable_namewherecnt_date<=target_date后经过研...