春季启动-@Transaction(readOnly = true)与Hibernate Search

时间:2019-05-08 09:36:28

标签: hibernate spring-boot jpa hibernate-search

我面临以下问题:我有一个应用程序(微服务体系结构),一个服务负责在很大的postgresql数据库中查找许多数据。该服务有很多“搜索器”,每个搜索器都从一个大数据库中获取数据。在执行大量的SELECT语句时,确实要花费很多时间(我使用Spring Boot,Hibernate)。

问题是如何提高性能?

  • 使用标志readOnly = true @Transaction(readOnly = true)设置事务
  • 或者可以使用休眠搜索:http://hibernate.org/search/
  • 禁用所有交易? (使用SELECT语句禁用事务可以极大地提高性能吗?)
  • 还是其他?

您能提出什么建议?我已经听说过Hibernate Search可能会显着提高性能

还是其他?

我的堆栈: 春季靴:

    <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.2.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
<dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>9.4-1206-jdbc42</version>
        </dependency>

我们使用许多这样的JPAR存储库:

@Repository
public interface MyRepository extends JpaRepository<MyEntity, Long> {
    Set<MyEntity> findByIdProductInAndIdClient(List<Long> productsIds, Long idClient);
}

我们也使用

  • @NamedQueries

我们有2个数据源(2个数据库,一个用于执行SELECT语句,一个用于执行SAVE语句)

0 个答案:

没有答案