2011-10-28 21 views
1

我需要能夠每秒鐘將數千筆交易插入某種形式的存儲,並且能夠快速查詢。推薦的數據庫/存儲每秒成千上萬的交易

我想要做的是記錄所有TCP請求(密鑰是源或目標IP地址)。 然後,當另一個請求進來時,檢查IP的先前請求是否在存儲/數據庫/緩存中,並執行相應的操作。

SQLExpress,SQLCompact,SQLIte,MongoDB,Firebird?這些足夠快嗎?

我應該只是在內存數據結構中使用一些描述?

商店需要由多個線程同時訪問...

任何建議,請...

UPDATE:RaptorDB?它有什麼好處?值得考慮與其他數據庫/ noSQL上面? http://www.codeproject.com/KB/database/RaptorDB.aspx

+2

您錯過了一個重要信息:您需要查詢多長時間?您可以使用內存數據結構進行查詢,也可以批量寫入磁盤以用於歷史記錄。 – driis

+0

看着約1小時,但它可能需要2小時的數據。網絡上有1000個電腦,所以有點擔心內存使用1小時的tcp流量數據。 – user296191

+0

這可能是數據庫管理員堆棧交換站點的更多問題。 –

回答

0

在這些速度下,您的瓶頸很可能是您的磁盤;一個標準的SATA驅動器每秒只能做幾十個事務。爲了補充磁盤,需要大量內存,以便數據庫大部分存儲在內存中。

或者,只需在內存中通過滾動使用關聯數組的自己的記錄器來完成所有操作。您是否需要記錄所有正在發送的數據,或只是PC A將數據發送到PC B的事實?