0

我在 Spring Boot 项目中使用 envers。

@Repository
public interface DataAudRepository extends RevisionRepository<Data, String, Integer>, JpaRepository<Data, String> {

}

如果表上有很多数据data_aud(数据数:3500),请求findRevisions(key, pageable)很慢。

当然,如果没有大量数据,请求是银色的。

Spring调用这个函数时,会出现一些hiberate sql。

select *
from data_aud publish_au0_ 
where 
    data_au0_.rev=(
        select max(data_au1_.rev) from data_aud data_au1_ 
        where 
            data_au1_.rev<=999999 and 
            data_au0_.data_id=data_au1_.data_id) AND 
    data_au0_.data_id='my-data-01'

也许我认为select max顺序是请求缓慢的原因。

如何避免这种缓慢的情况?

+)

data_aud 表的主键是 (data_id, varchar(32), rev, int(11))

数据表的PK是data_id。

4

0 回答 0