2010-01-27 45 views
0

我正在使用數據庫擴展電子投票應用程序。考慮多個同時投票。對於每個選票,存儲了幾個配置選項,還有選票。多個應用程序實例,多個數據庫或互連表?

配置表顯然非常小,在存在合理數量的同時投票的情況下,但投票表可能會變得非常大。

我的問題是:讓DB只關注一個選票,並讓每個選票創建整個DB的新實例,或者在大多數表中有一個ballot_id外鍵,並將數據存儲爲所有選票都在同一個數據庫中?

我的問題主要涉及性能,特別是插入表格中的插入,一旦它變得很大。

回答

1

我的經驗法則 - 保持它在同一個數據庫中,並使用分區來管理表。使用分區,您可以將「舊選票數據」移動到單獨的驅動器,並將新數據「流入」最新的分區。出於所有實際目的,當前查詢大部分時間只訪問總表大小的一小部分。

這樣,您仍然可以在整個表格(所有選票)上使用報告,而無需在不同數據庫之間進行瀏覽。

+0

謝謝,這是我正在尋找的答案。 – FrontierPsycho 2010-02-03 13:28:37

0

如果:

  • 選票一旦關閉有效地變爲只讀,並且
  • 也是獨立的,無關的其他投票,

然後是的,這似乎出於性能原因將它們分開是有意義的。

是否有任何表共享所有選票? (例如,應用程序範圍的配置) 然後,該信息將需要坐在它自己的數據庫中。

+0

是的,有一些與選票無關的信息,他們自然必須駐留在專用數據庫中。 嗯,我想很明顯,會有一個性能優勢。重點是,在哪個數量級上性能差異會顯着。如果它在數十億條目中,那麼它並不重要。 – FrontierPsycho 2010-01-27 12:08:41

相關問題