之前使用的JPA命名规则下的jpa方法。
/**
* @author: Yz
* @Description:
* @create: 2023-07-02
**/
@Repository
public interface MedicalInsuranceDirectoryRepository extends JpaRepository<MedicalInsuranceDirectory, Long>, BaseRepository<MedicalInsuranceDirectory>, JpaSpecificationExecutor<MedicalInsuranceDirectory> {
void deleteAllByAprvNo(String aprvNo);
}
在这个方法下,20W数据删除使用时间是83秒左右,时间太长。
优化方法 使用原生SQL
@Transactional
@Modifying
@Query(value = "delete from medical_insurance_directory where resource_file_code=?1 ", nativeQuery = true)
void deleteAllByResourceFileCode(@Param("resourceFileCode") String resourceFileCode);
优化后,20W数据删除使用时间是18秒左右
(字段只有十几个字段)