C# 每秒数千个事务的建议数据库/存储

C# 每秒数千个事务的建议数据库/存储,c#,database,performance,persistent,C#,Database,Performance,Persistent,我需要能够每秒将数千个事务插入某种形式的存储,并能够快速查询它 我想做的是记录所有TCP请求(密钥是源或目标IP地址)。 然后,当另一个请求进入时,检查IP先前的请求是否在存储/数据库/缓存中,并执行相应的操作 SQLExpress、SQLCompact、SQLIte、MongoDB、Firebird?这些东西够快吗 我应该仅仅使用一些描述的内存数据结构吗 存储需要由多个线程同时访问 有什么建议请 更新:RaptorDB?有什么好处吗?是否值得与上述其他数据库/noSQL一起考虑? 在这些速度下

我需要能够每秒将数千个事务插入某种形式的存储,并能够快速查询它

我想做的是记录所有TCP请求(密钥是源或目标IP地址)。 然后,当另一个请求进入时,检查IP先前的请求是否在存储/数据库/缓存中,并执行相应的操作

SQLExpress、SQLCompact、SQLIte、MongoDB、Firebird?这些东西够快吗

我应该仅仅使用一些描述的内存数据结构吗

存储需要由多个线程同时访问

有什么建议请

更新:RaptorDB?有什么好处吗?是否值得与上述其他数据库/noSQL一起考虑?

在这些速度下,您的瓶颈可能是磁盘;标准SATA驱动器每秒只能执行几十个事务。为了补充磁盘,向其投入大量RAM,以便数据库主要存储在内存中


或者,只需在内存中滚动使用关联数组的您自己的记录器即可。您需要记录发送的所有数据,还是只记录PC A向PC B发送数据的事实?

您缺少一个重要信息:您需要查询多长时间?您可以使用内存中的数据结构进行查询,也可以出于历史目的批量写入磁盘。大约需要1小时,但可能需要2小时的数据。网络上有1000台电脑,所以有点担心内存使用情况,在内存中存储1小时的tcp流量数据。对于数据库管理员Stack Exchange站点来说,这可能是一个更大的问题。我很好奇-如果机器(IP)已经发出请求,而这是第一个请求,您会采取什么不同的做法?听起来好像你正在尝试复制一些可能已经存在的功能-请详细说明。它记录DNS请求,并做一些关于重定向流量的奇特事情。。。