我正在使用數據庫擴展電子投票應用程序。考慮多個同時投票。對於每個選票,存儲了幾個配置選項,還有選票。多個應用程序實例,多個數據庫或互連表?
配置表顯然非常小,在存在合理數量的同時投票的情況下,但投票表可能會變得非常大。
我的問題是:讓DB只關注一個選票,並讓每個選票創建整個DB的新實例,或者在大多數表中有一個ballot_id外鍵,並將數據存儲爲所有選票都在同一個數據庫中?
我的問題主要涉及性能,特別是插入表格中的插入,一旦它變得很大。
我正在使用數據庫擴展電子投票應用程序。考慮多個同時投票。對於每個選票,存儲了幾個配置選項,還有選票。多個應用程序實例,多個數據庫或互連表?
配置表顯然非常小,在存在合理數量的同時投票的情況下,但投票表可能會變得非常大。
我的問題是:讓DB只關注一個選票,並讓每個選票創建整個DB的新實例,或者在大多數表中有一個ballot_id外鍵,並將數據存儲爲所有選票都在同一個數據庫中?
我的問題主要涉及性能,特別是插入表格中的插入,一旦它變得很大。
我的經驗法則 - 保持它在同一個數據庫中,並使用分區來管理表。使用分區,您可以將「舊選票數據」移動到單獨的驅動器,並將新數據「流入」最新的分區。出於所有實際目的,當前查詢大部分時間只訪問總表大小的一小部分。
這樣,您仍然可以在整個表格(所有選票)上使用報告,而無需在不同數據庫之間進行瀏覽。
如果:
然後是的,這似乎出於性能原因將它們分開是有意義的。
是否有任何表共享所有選票? (例如,應用程序範圍的配置) 然後,該信息將需要坐在它自己的數據庫中。
是的,有一些與選票無關的信息,他們自然必須駐留在專用數據庫中。 嗯,我想很明顯,會有一個性能優勢。重點是,在哪個數量級上性能差異會顯着。如果它在數十億條目中,那麼它並不重要。 – FrontierPsycho 2010-01-27 12:08:41
謝謝,這是我正在尋找的答案。 – FrontierPsycho 2010-02-03 13:28:37