Java:优化处理具有巨大数据集的多对多关系

时间:2018-10-17 11:21:17

标签: java postgresql hibernate spring-boot many-to-many

这是我的问题。 我在很多表中拥有大量数据,这些数据我必须经常更新,并且还需要使用动态过滤器,按位置排序和请求(postgis-db)来请求它们...

商店实体:

a.nav-link.ml-3.my-1.active {
background-color: red;
}

产品实体:

public class Shop extends BaseEntity {

  ....

  @ManyToOne
  @JsonIdentityReference(alwaysAsId = true)
  @JsonSerialize(using = IdSerializer.class)
  @JoinColumn(name = "parent_id")
  private Shop parent;

  @ManyToMany(mappedBy = "shops")
  @JsonIdentityReference(alwaysAsId = true)
  @JsonIgnore
  private List<Product> products = new ArrayList<>();

  ...
}

产品表由大约一百万行和大约8000个商店组成。因此,在最坏的情况下,多对多表的长度为8 * 10 ^ 9行,这导致请求时间非常长。

请记住要有效解决此问题的任何想法,我想根据位置字段对商店进行排序。

当前技术堆栈:

  • java 8
  • 弹簧靴
  • 休眠/ jpa
  • postgresql / postgis

0 个答案:

没有答案