2013-04-07 85 views
0

我必須保持帳戶餘額是最新的,更改日誌,並使用它。火鳥性能:更新/選擇verus插入/選擇最後的

在我看來,該選項,其一是:

  1. 保持在單行,
  2. 使用觸發器來更改保存到一個單獨的表
  3. 使用選擇|更新做更新
  4. 使用一個簡單的選擇從表中訪問值

另一種方法是:

  1. 保留值在單獨的表,
  2. 使用選擇上次和插入從附表實現更新
  3. 使用選擇上次訪問

有誰知道這是值更快?它有很多嗎?

史蒂夫

+2

我認爲你的問題需要更多的細節,因爲就它而言,我認爲它太模糊。例如:我不知道「使用select | update進行更新」或「Select Last」的含義是什麼意思。 – 2013-04-07 14:43:26

回答

0

你所提議似乎過於複雜... 我會sugest做不同的事情: 我將有一個主從關係的兩個表。 在細節我會插入行和它的觸發器將更新主表

balance (account, amount, ...) 
balance_detail (account, amount, ...) 

balance_detail_after_insert 
begin 
    update master 
    set amount = amount + new.amount 
    where account = new.account; 
end 

balance_detail_after_update 
begin 
    update master 
    set amount = amount + new.amount - old.amount 
    where account = new.account; 
end 

balance_detail_after_delete 
begin 
    update master 
    set amount = amount - new.amount 
    where account = new.account; 
end 

任何改變,你應該簡單地關閉/打開主表刷新數據之後。