并且"同样的事情"我的意思是这两个操作基本上做同样的工作,它只是归结为哪个更方便根据你必须使用的工作来调用?(即代表列表或迭代的事项列表)?我一直在搜索MSDN,StackOverflow和各种随机文章,但我还没有找到一个明确的答案.
编辑: 我应该更清楚; 我问这两种方法是否做同样的事情,因为如果他们不这样做,我想了解哪种方法会更有效率.
示例:我有500个键值的列表.目前我使用foreach循环遍历列表(连续)并执行每个项目的工作.如果我想利用多个内核,我应该简单地使用Parallel.ForEach吗?让我们说为了参数的缘故,我为这500个任务组成了一个500个代表的数组 - 是否会产生任何不同的调用Parallel.Invoke,给它一个500个代表的列表?
提前谢谢了!
我发现了一些与此相同的问题,但是他们没有详细说明存储数据的性质,查询方式等等......所以我认为这是值得发布的.
我的数据很简单,有三个字段: - "datetimestamp"值(日期/时间) - 两个字符串,"A"和"B",两个<20个字符
我的应用程序非常庞大(每秒数百个).所有写入都是新记录; 插入后,数据永远不会被修改.
常规读取每隔几秒发生一次,并用于填充一些近实时仪表板.我查询日期/时间值和其中一个字符串值.例如,获取datetimestamp在特定范围内的所有记录,字段"B"等于特定搜索值.这些查询通常每个返回几千条记录.
最后,我的数据库不需要无限制地增长; 我将通过手动删除它们或使用缓存过期技术(如果数据库支持)来清除10天以上的记录.
我最初在MongoDB中实现了这一点,但没有意识到它处理锁定的方式(写入块读取).随着我的扩展,我的查询花费的时间越来越长(现在30秒以上,即使使用正确的索引).现在,凭借我所学到的知识,我相信大量的写作会使我的读数挨饿.
我已经阅读了kkovacs.eu文章,比较了各种NoSQL选项,虽然我学到了很多东西,但我不知道我的用例是否有明显的赢家.我非常感谢熟悉这些选项的人的推荐.
提前致谢!