2011-12-11 79 views
0

我正在運行經濟模擬。數百,數千或可能數百萬(但不超過30.000.000)的代理=對象必須隨時間協議數據,數據總是具有相同的結構。它通常由許多布爾值,浮點數和整數組成,可能是數組/列表(5到100個不同的變量)。在模擬過程中,數據庫沒有讀取權限。在模擬之後,數據不會再被改變。 對於每個模擬,我將創建一個新的數據庫。 當前的編程語言是python,但是這個選擇會影響到java中的未來項目。也有可能將來該項目將在網絡上運行。 如果很重要:對象通過0mq進行通信。 我應該選擇哪種數據庫類型和實現?數據庫選擇:爲百萬對象搜索數據的協議數據

  • 它需要開源

  • 好Python和Java API是不可缺少的

+0

請澄清:在運行仿真之前,您是否有一個用於填充數據的啓動器數據庫?你是否需要寫入數據庫(在模擬之前或之後)? db寫入延遲是個問題嗎?您的對象是否位於網絡上的不同主機上? –

+0

@DeanToader數據庫是空的開始。在模擬之後,它只能被讀取。 –

+0

數據庫寫入延遲不是問題,因爲數據寫入時的順序和順序無關。 –

回答

0

這取決於你的個人需要。數百萬行對於數據庫來說並不那麼重要。

首先,我會嘗試使用Oracle 11g Express Edition。它是免費的,與付費版本100%兼容,但它僅限於11 GB的用戶數據和1 GB的RAM。

如果您使用的是開源火車,請查看PostgreSQL。

但是,請記住(很有可能)您將被綁定到您選擇的任何數據庫軟件。

0

由於模擬在單臺計算機上運行,​​sqlite3原來是一個很好的解決方案。它避免了降低複雜性和提高速度的數據庫服務器。