运算符之间的大表和SQL:Spring Data的性能问题

时间:2014-10-28 06:48:58

标签: java mysql spring hibernate

我在Hibernate之上使用Spring Data。 我有一个抽象的类A和一些实现,其中两个与数据库中的大量记录相关联,比方说200k。我正在使用TABLE_PER_CLASS继承策略。 A类与另一个具有两个双数d1和d2的C类有关系。 现在,我想执行一个查询,如findByCD1BetweenAndCD2Between(double minD1,double maxD1,double minD2,double maxD2):

@Repository
public interface ARepository extends
    JpaRepository<A, Long>,
    JpaSpecificationExecutor<A> {

      findByCD1BetweenAndCD2Between(double minD1, double maxD1, double minD2, double maxD2):
}

嵌入我的C类并定义索引:

@Entity
@Configurable
@Embeddable
@Table(indexes = { @Index(columnList = "d1,d2") })
public class C {
    private double d1;
    private double d2:
}

A类嵌入它:

@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
@Configurable
public class C {
    @Embedded
    private Coordinates coordinates;
/*...*/
}

当我这样做时,查询真的需要几分钟。直接在SQL中执行查询并不需要那么长时间,因为它只需几秒钟。 与条件匹配的记录数量级为100。 如何优化这种情况以便将计算减少到几秒钟?

0 个答案:

没有答案