我正在研究一个带有Postgresql和Hibernate的
Spring-MVC应用程序,其中我有几个表,行数超过10万(10万).这些表,我95%的时间只访问最新的数据,并筛选所有这些行是耗时的.很多时候查询规划器甚至没有使用索引(原因我不知道).
然后我想到每周拆分数据库表,所以我们可以先访问最新的月份数据库,然后如果用户请求,那么前一个表中的更多结果将直接添加到请求中.
执行的大多数查询都要求我们使用JOIN,因为表格是一对多映射的.
行计数为>的模型文件之一超过10万.
型号:
@Entity
@Table(name = "groupnotehistory")
public class GroupNoteHistory {
@Id
@Column(name = "mhistoryid")
@GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "mhistory_gen")
@SequenceGenerator(name = "mhistory_gen",sequenceName = "mhistory_seq")
private int mhistoryid;
@Column(name = "mnoteeditdate",columnDefinition = "timestamp without time zone")
private Timestamp mnoteEditDate;
@Column(name = "oldheadline",columnDefinition = "character varying")
@Type(type="jasyptHibernateEncryptor")
private String oldHeadLine;
@Column(name = "oldtext",columnDefinition = "character varying")
@Type(type="jasyptHibernateEncryptor")
private String oldText;
@Column(name = "newnotetext",columnDefinition = "character varying")
@Type(type="jasyptHibernateEncryptor")
private String newNoteText;
@Column(name = "newnoteheadline",columnDefinition = "character varying")
@Type(type="jasyptHibernateEncryptor")
private String newNoteHeadline;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "mnoteid",nullable = false)
private GroupNotes mhistory;
// Getters and setters
}
Hibernate是否提供了解决此问题的任何策略或方法?谢谢.