我是 NoSQL 世界的新手,正在考虑将我的 MS Sql Server 数据库替换为 MongoDB。我的应用程序(用 .Net C# 编写)与 IP 摄像头交互,并将来自摄像头的每个图像的元数据记录到 MS SQL 数据库中。平均而言,我每天为每个相机插入大约 86400 条记录,并且在当前数据库模式中,我为单独的相机图像创建了单独的表,例如 Camera_1_Images、Camera_2_Images ... Camera_N_Images。单个图像记录由简单的元数据信息组成。像 AutoId、FilePath、CreationDate。为了添加更多细节,我的应用程序为每个摄像头启动单独的进程 (.exe),每个进程每秒在数据库的相关表中插入 1 条记录。
我需要(MongoDB)专家就以下问题提出建议:
判断 MongoDB 是否适合保存此类数据,最终将针对时间范围进行查询(例如,检索指定小时之间特定相机的所有图像)?关于我的案例基于文档的架构设计有什么建议吗?
服务器(CPU、RAM、磁盘)的规格应该是什么?有什么建议吗?
我是否应该考虑在这种情况下进行分片/复制(同时考虑写入同步副本集的性能)?
在同一台机器上使用多个数据库有什么好处,这样一个数据库将保存所有相机的当天图像,而第二个数据库将用于存档前一天的图像?我正在考虑在单独的数据库上拆分读取和写入。因为所有读取请求都可能由第二个数据库提供服务并写入第一个数据库。它会受益还是没有?如果是,那么任何确保两个数据库始终同步的想法。
欢迎任何其他建议。