Разница в производительности чтения mongoDB между моделями один ко многим и нормализованными моделями - PullRequest
1 голос
/ 09 июля 2019

здесь есть 2 возможности для базы данных заметок, которая будет иметь несколько заметок для нескольких пользователей, чтобы отслеживать

1.

[
  {
    "_id": "abcd",
    "userInfo": {
      "userID": "1",
      "notes": [
        {
          "noteID": "1",
          "text": "123"
        },
        {
          "noteID": "2",
          "text": "456"
        },
        {
          "noteID": "3",
          "text": "789"
        }
      ]
    }
  },
  {
    "_id": "efgh",
    "userInfo": {
      "userID": "2",
      "notes": [
        {
          "noteID": "1",
          "text": "123"
        },
        {
          "noteID": "2",
          "text": "456"
        }
      ]
    }
  }
]

И 2-й вариант:

[
  {
    "_id": "abcd",
    "userID": "1",
    "noteID": "1",
    "text": "123"
  },
  {
    "_id": "efgh",
    "userID": "1",
    "noteID": "2",
    "text": "456"
  },
  {
    "_id": "ijkl",
    "userID": "1",
    "noteID": "3",
    "text": "789"
  },
  {
    "_id": "mnop",
    "userID": "2",
    "noteID": "1",
    "text": "123"
  },
  {
    "_id": "wxyz",
    "userID": "2",
    "noteID": "2",
    "text": "123"
  }
]

Я бы ожидал, что 1 будет иметь гораздо лучшую производительность, когда дело доходит до загрузки заметок для одного пользователя (если у пользователя есть тонна заметок).Однако 2-й вариант намного лучше при изменении и добавлении отдельных заметок.

...