相关疑难解决方法(0)

使用MongoDB而不是MS SQL Server的优点和缺点

我是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)专家就以下问题提出建议:

  1. 判断MongoDB是否适合保存这些数据,最终将根据时间范围查询(例如,在指定的小时内检索特定摄像机的所有图像)?关于我的案例的基于文档的架构设计的任何建议?

  2. 什么应该是服务器(CPU,RAM,磁盘)的规格?有什么建议吗?

  3. 我应该考虑为这种情况进行分片/复制(同时考虑写入同步副本集的性能)吗?

  4. 在同一台机器上使用多个数据库有什么好处,因此一个数据库将保存所有摄像机的当前图像,第二个数据库将用于存档前一天的图像?关于在不同的数据库上拆分读写,我正在考虑这个问题.因为所有读取请求可能由第二个数据库提供并写入第一个数据库.它会受益吗?如果是,那么任何想法都要确保两个数据库始终同步.

欢迎任何其他建议.

sql schema mongodb

34
推荐指数
1
解决办法
5万
查看次数

使用 JSON / HTTP / REST 接口查询 MongoDB

我正在构建一个 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 个。

我的问题是:

  1. 我是否正确地说使用网络服务会在请求/响应周期中增加一些延迟(毫秒)?(因为MongoDB实际上需要几毫秒才能完成查询)
  2. 第二个选项是使用 MongoDB 的HTTP/REST 接口。这样我就可以避免 Web 服务并直接查询 MongoDB。在这里我需要你的意见,
    • 有没有办法使用 HTTP/REST 查询两个日期之间的 MongoDB?
    • 有没有办法使用 HTTP/REST 通过“>”和“<”条件查询 MongoDB?
    • 从安全角度来看,直接在 Page.aspx 上访问数据库看起来怎么样?
  3. 对于上述模式还有其他查询替代或优化吗?

我的相关问题在这里。 …

rest datetime json mongodb

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

mongodb ×2

datetime ×1

json ×1

rest ×1

schema ×1

sql ×1