我是NoSQL世界的新手,并且正在考虑将我的MS Sql Server数据库替换为MongoDB.我的应用程序(用.Net C#编写)与IP摄像头交互,并将来自Camera的每个图像的元数据记录到MS SQL数据库中.平均而言,我每天为每个摄像机插入大约86400条记录,在当前的数据库模式中,我为单独的摄像机图像创建了单独的表,例如Camera_1_Images,Camera_2_Images ... Camera_N_Images.单个图像记录由简单的元数据信息组成.像AutoId,FilePath,CreationDate.为了向此添加更多详细信息,我的应用程序为每个摄像头启动单独的进程(.exe),每个进程在数据库的相对表中每秒插入1条记录.
我需要(MongoDB)专家就以下问题提出建议:
判断MongoDB是否适合保存这些数据,最终将根据时间范围查询(例如,在指定的小时内检索特定摄像机的所有图像)?关于我的案例的基于文档的架构设计的任何建议?
什么应该是服务器(CPU,RAM,磁盘)的规格?有什么建议吗?
我应该考虑为这种情况进行分片/复制(同时考虑写入同步副本集的性能)吗?
在同一台机器上使用多个数据库有什么好处,因此一个数据库将保存所有摄像机的当前图像,第二个数据库将用于存档前一天的图像?关于在不同的数据库上拆分读写,我正在考虑这个问题.因为所有读取请求可能由第二个数据库提供并写入第一个数据库.它会受益吗?如果是,那么任何想法都要确保两个数据库始终同步.
欢迎任何其他建议.
我正在构建一个 ASP.Net Web 应用程序,并希望从 MongoDB(远程托管)访问数据。我的任何文档都看起来像这样(已确保 Utc 字段上的索引);
{
"_id" : { "$oid" : "509501393e8785025c10bc21" },
"Index" : 1,
"Url" : "http:...",
"CameraId" : 123,
"Utc" : { "$date" : 1351955858006 }
}
Run Code Online (Sandbox Code Playgroud)
考虑到用户端的性能,我想以最大速度获取这些数据。我尝试过的一种选择是通过 Page.aspx 上的 JSON 调用本地 Web 服务,该服务使用 MongoDB C# 驱动程序来查询两个日期 (Utc) 之间的文档。这可行,但似乎使用 Web 服务会在请求/响应周期中增加一些额外的毫秒数(使用 db.foo.findOne() 对单个文档的请求平均需要 1.3 秒)。该集合中的平均文档数量为 50,000 个,预计将增加到 30,00,000 个。
我的问题是:
我的相关问题在这里。 …