C# 哪种DB类型更适合用于高性能目的?

C# 哪种DB类型更适合用于高性能目的?,c#,database,database-design,nosql,database-engine,C#,Database,Database Design,Nosql,Database Engine,我希望设计一个具有以下数据功能的系统: 多个数据源高写入速率,每秒从中写入50K-100K记录。 单源快速读取,单IO获取操作。 这是基本的数据库表/集设计: Type name -------------- Date Amount 对于每种新类型,将创建一个新表/集。 唯一的提取操作是按日期选择,日期应该是群集主键或类似的内容。 超过一个月的表将被存档。 到目前为止,我收到的解决方案包括: 纯DB引擎,如Berkeley或MS Jet。 NoSQL,比如Mongo DB。 另外,系统将用

我希望设计一个具有以下数据功能的系统:

多个数据源高写入速率,每秒从中写入50K-100K记录。 单源快速读取,单IO获取操作。 这是基本的数据库表/集设计:

  Type name
--------------
Date
Amount
对于每种新类型,将创建一个新表/集。 唯一的提取操作是按日期选择,日期应该是群集主键或类似的内容。 超过一个月的表将被存档。 到目前为止,我收到的解决方案包括:

纯DB引擎,如Berkeley或MS Jet。 NoSQL,比如Mongo DB。
另外,系统将用C语言编写。

如果您所做的只是从多个写入程序写入,然后按顺序读取一次,那么您不需要数据库,而是需要一个队列系统。ZeroMQ非常快。

如果您所做的只是从多个写入程序写入数据,然后按顺序读取一次,那么您不需要数据库,而需要队列系统。ZeroMQ的速度非常快。

看看C的和

这里有一个链接。

看看C的和



这是一个链接。

Redis将是一个完美的解决方案,但要求要简单得多,而且伯克利DB似乎很适合。

Redis将是一个完美的解决方案,但要求比这简单得多,而且伯克利DB似乎非常适合。

读数将由监视器/视图系统执行。用户将选择用于获取数据的类型和日期范围。这不会是一次手术。请代我向Ami问好-读数将由监视器/视图系统执行。用户将选择用于获取数据的类型和日期范围。这不会是一次手术。请代我向Ami问好-每秒10万条记录意味着每天约有90亿条记录。这就是你想要的吗?是的,但这是我需要的最大容量,大多数情况下,它将每秒运行80-40K条记录。是否有一条记录在写入后可立即查询?我的想法是在内存中连续写入记录,而另一个并行处理则使用块来持久化记录。您的用例看起来像是一个信号采集过程。不,它不必是即时的,甚至可以接受可容忍的数据丢失。该图的分辨率是多少?也许您不需要实际存储所有的数据点-也许您可以平均出几个比图形分辨率更接近的数据点,从而降低如此巨大的插入量?10万条记录/秒意味着每天约90亿条记录。这就是你想要的吗?是的,但这是我需要的最大容量,大多数情况下,它将每秒运行80-40K条记录。是否有一条记录在写入后可立即查询?我的想法是在内存中连续写入记录,而另一个并行处理则使用块来持久化记录。您的用例看起来像是一个信号采集过程。不,它不必是即时的,甚至可以接受可容忍的数据丢失。该图的分辨率是多少?也许你不需要实际存储所有的数据点-也许你可以平均出几个比图形分辨率更接近的数据点,从而降低如此巨大的插入量?谢谢,你能解释一下为什么我应该选择NoSQL而不是像Berkeley这样的DB引擎吗?我不需要保留所有的信息,我只需要查询一个月/一周的信息,而其余的数据将被归档。伯克利可能更适合我,不是吗?伯克利是一个本地数据库引擎。您提到的多源高写入率是在同一台机器上还是分布在网络上?谢谢,您能解释一下为什么我应该选择NoSQL而不是像Berkeley这样的DB引擎吗?我不需要保留所有信息,我只需要查询一个月/一周的信息,而其余的数据将被归档。伯克利可能更适合我,不是吗?伯克利是一个本地数据库引擎。您提到的多源高写入率是在同一台机器上还是分布在网络上?