0

NoSQL 新手

在我 8 年的 Web 开发中,我一直使用关系数据库。最近,我开始将 MongoDB 用于一个简单的多用户 Web 应用程序,用户可以在其中创建自己的照片库。

我的域名

My Domain 很简单,有“用户”>“网站”>“照片集”>“照片”。

我一直在努力决定如何存储这些文件。在应用程序中,有时我只需要一小部分“照片”,有时只需要“集合”,但我总是需要一些关于“用户”的信息,可能还有“站点”。

薄与深

目前我正在使用我自己的外键实现来存储多个精简文档。当然,问题是我有时必须多次调用 Mongo 才能呈现单个页面。

问题

当然,我确信有办法解决这些低效率、缓存等问题,但是 NoSQLers 如何解决这些问题:

  • 像这样关联您的文件是否正常?
  • 只存储潜在的海量深层文档会更好吗?
  • 我是不是弄错了,实际上我应该专门为不同的视图存储多个文档?
  • 如果您为不同的视图存储多个文档,您如何管理更新?
  • 是使用 Mongo 的“嵌入”功能的答案吗?这就是大多数解决这个问题的方法吗?
4

1 回答 1

1

在使用 NoSQL 数据库,尤其是 MongoDB 时要考虑的问题:

你如何操作数据?

  • 动态查询
  • 二级索引
  • 原子更新
  • 地图缩减

你的访问模式(每个集合)怎么样?

  • 读/写比率
  • 更新类型
  • 查询类型
  • 数据生命周期

基础知识:

  • 文档写入是原子的
  • 最大文档大小为 16Meg(使用 GridFS,您也可以存储更大的文件)

注意:

  • 粗心的索引
  • 大型、深度嵌套的文档

这是关于模式设计的较早讨论:模式设计基础

于 2012-10-29T16:17:41.440 回答