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,来缓存已加载的文件,以避免在每一次加载地图时都需要重新读取文件。

    评论

报告相同问题?

悬赏问题

  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能