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