Я пытаюсь спроектировать модель данных, которая может содержать очень большой объем данных, есть ли у кого-либо опыт работы с большими объемами данных, например:
// example only, not meant to compile
public class TransactionAccount {
private long balance;
private List<Transaction> transactions = new ArrayList<Transaction>();
....
public long getBalance() { return balance; }
}
private class Transaction {
public Date date;
public long amount;
}
Исходя из того, что я прочитал, единственный способ добиться целостности транзакций при вставке Transaction
и обновлении balance
- это сделать его одной группой сущностей.
Однако со временем для определенного TransactionAccount
будут совершаться миллионы транзакций. Количество записей в эту группу объектов будет низким, но число операций чтения будет намного выше.
Я знаю, что это, возможно, может быть осквернено, однако чтение balance
является очень частой операцией, и его разбиение сделает одну из самых распространенных операций getBalance()
самой медленной операцией.