2010-02-19 121 views
3

想象一下以下內容:虛擬數據庫

我有57000項,我經常在我的應用程序中使用弄清楚事情就像靶向基團等

,而不是查詢數據庫300,000倍的表那麼對於幾乎不會改變數據的表格,有沒有辦法將其信息存儲在我的應用程序中,並直接在內存中輪詢數據?或者,我是否必須爲每行創建某種自定義數據類型,並遍歷每行測試,以檢查我想要的結果?

一些google搜索後,我能找到的最接近的是內存數據庫

謝謝你, - 西奧

回答

1

SQLite支持內存表。

+0

謝謝,我已經發現了這個問題,但我總是給你答案 – 2010-02-19 14:21:52

0

Caching

這聽起來像這樣閱讀起來是應用水平數據而不是用戶級別,所以你應該看看「Caching Application Data

這裏是some samples of caching datatables

+1

緩存問題在於,您只能存儲單個值,以避免內存問題。這在搜索結果後會產生一個問題 – 2010-02-19 13:32:16

1

對於您要查詢的57,000個項目(並且希望立即可用),我不建議實施簡單的緩存。對於那麼多項目,我會推薦一個分佈式內存緩存(即使它只有一臺機器),例如Memcache,Velocity等,或者與您使用內存數據庫的最初想法一致。

此外,如果您使用任何完全成熟的ORM(如NHibernate),您可以實現它以使用分佈式緩存工具的客戶端,幾乎不需要任何工作。許多主要的客戶端都有NHibernate實現,包括Memcache,Velocity和其他一些。這可能是一個更好的解決方案,因爲它只能緩存它真正使用的數據,而不是它可能需要的所有數據。

0

如果您只需要始終使用相同的密鑰查找行,那麼只需簡單的Dictionary<Key, Value>即可。對我而言,除非每行包含大量數據,否則57,000個項目聽起來並不那麼真實。但是,如果您需要通過不同的列進行搜索,則內存數據庫最有可能成爲可能。

+1

這不是數據量,而是我需要有條件地訪問它的事實,並有許多列檢查。 – 2010-02-19 14:21:16