knqi007 2019-05-07 09:20 采纳率: 0%
浏览 652

MongoDB如何存储树形目录下的大量文件,怎样读取效率最高?

先说下我是刚入门MongoDB的小白。。目的是将瓦片地图存储到MongoDB中,然后读取加载地图,测试加载效率。现在有很多子文件夹和比较多的文件,应该如何在MongoDB中建库和建集合来存储读取比较高效?操作打算用GridFS,只用fs.files和fs.chunks,然后用字段来记录文件的相对路径可以吗,请各位不吝指教。

  • 写回答

1条回答

  • 憧憬blog 2023-03-15 07:30
    关注

    首先,你需要在MongoDB中创建一个新的数据库来存储你的地图文件。然后,你可以使用GridFS来存储这些文件,因为它可以处理大文件,并且可以将文件切成多个小块进行存储。

    在GridFS中,你可以使用fs.files来存储文件的元数据,而使用fs.chunks来存储文件的实际内容。为了提高读取效率,我们建议使用适当的索引。对于文件的相对路径,你可以将其存储在fs.files的元数据中,使用path字段或自定义的字段,这将使你更容易找到文件和文件夹。

    为了优化读取性能,你可以考虑将瓦片地图分成多个部分存储,并使用懒加载来加载地图,这样地图只会在需要时才加载,节省了加载时间和资源。此外,你还可以使用查询优化技术,如使用合适的查询条件、索引和投影来快速查找和检索文件。

    最后,你可以尝试使用缓存技术,如Redis或Memcached,来缓存已加载的文件,以避免在每一次加载地图时都需要重新读取文件。

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料