Я работаю над приложением Spring-MVC с PostgreSQL и Hibernate, в котором у меня есть несколько таблиц, для которых количество строк превышает 1 лак (100 тысяч). Эти таблицы, я 95% времени доступа только к последним данным, и просеивание через все эти строки занимает много времени. Много раз планировщик запросов даже не использовал индексы (по неизвестным причинам).Спящий режим: разбиение таблицы автоматически каждый месяц
Затем я думал о разделении таблиц базы данных каждую неделю, поэтому мы можем просто получить доступ к первой базе данных последних месяцев, а затем, если пользователь запросит, в запрос будет добавлено больше результатов из предыдущей таблицы.
Для выполнения большинства запросов требуется JOIN для нас, как таблицы, сопоставленные с одним-ко-многим.
Один из файлов моделей, в которых число строк превышает 100 тысяч.
Модель:
@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 обеспечить какую-либо стратегию или способ решить эту проблему? Спасибо.
Это звучит, как это может быть хорошее время, чтобы рассмотреть альтернативные источники данных, такие как дописывания только войти магазин , – chrylis
@chrylis: Как я могу запросить их или получить из него определенный набор данных? –