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 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化