我在 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。