Производительность и масштабируемость для единой структуры данных или разделения структур данных в MongoDB - PullRequest
0 голосов
/ 16 марта 2020

Есть ли разница в производительности, если у вас есть массив в наборе данных (tags), например:

кластер изображений:

{
  _id: 'imageID1',
  title: 'some title name',
  tags: ['cool', 'banana', 'animal']
},
{
  _id: 'imageID2',
  title: 'some other title name',
  tags: ['funny', 'creative', 'animal']
}

против разделения массива на разные кластеры ? (Я использую mongodb в качестве базы данных)

кластер изображений:

{
  _id: 'imageID1',
  title: 'some title name',
  tagsId: 'imageID1tags'
},
{
  _id: 'imageID2',
  title: 'some other title name',
  tagsId: 'imageID2tags'
}

Кластер тегов:

{
  _id: '1',
  imagesId: 'imageID1',
  tag: 'cool'
},
{
  _id: '2',
  imagesId: 'imageID1',
  tag: 'banana'
},
{
  _id: '3',
  imagesId: 'imageID1',
  tag: 'animal'
},
{
  _id: '4',
  imagesId: 'imageID2',
  tag: 'funny'
},
{
  _id: '5',
  imagesId: 'imageID2',
  tag: 'creative'
},
{
  _id: '6',
  imagesId: 'imageID2',
  tag: 'animal'
},

Просто примечание: вы можете видеть (например, цели), у меня есть 2 данных о животных, из которых 1 принадлежит imageID1, а другой imageID2. Этот кластер будет иметь бесконечное количество тегов, где он может быть повторяющимся именем, уникальным для его imagesId.

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

Поэтому, если пользователь выполняет поиск animal, оба изображения будут отображаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...