Какой тип базы данных подходит для такой рабочей нагрузки? - PullRequest
1 голос
/ 12 июля 2011

Я знаю, что это несколько субъективный вопрос, но я все равно хочу его отбросить, потому что, если есть какое-то понимание, которое я пропустил, задание этого вопроса спасет меня (и, надеюсь, других) от большого количества поиска: -)

По сути, какой тип базы данных лучше всего подходит для случаев, когда несколько элементов связаны между собой.Например:

A->B->C->D->E->F->G->H->I

И вы хотите иметь возможность быстро найти кратчайший путь (или, в идеале, количество путей) между A и I?

Обычно я бы просто использовал для этого реляционную базу данных, но я не уверен, что база данных в стиле MapReduce лучше, и тогда я подумал, существует ли тип базы данных, который я вообще не рассматривал ...

Как всегда, вся помощь с благодарностью получена:)

Ответы [ 2 ]

4 голосов
/ 13 июля 2011

Это именно то, для чего предназначен neo4j . Это база данных графов, которая предоставляет операции для выполнения обхода графа и другие общие операции.

0 голосов
/ 12 июля 2011

Я бы посоветовал взглянуть на MongoDB - это НЕ реляционная база данных, и все ваши данные сохраняются и передаются в виде JSON, их легко масштабировать и собирать для повышения производительности, а также с помощью нескольких хитростей, как MapReduce, встроенный в mongoDB, и многое другое.

Поскольку данные сохраняются в формате JSON, вы можете хорошо сохранять объекты внутри объектов и массивов:

{
  foo:"bar", 
  animals: ['cat','dog','fish'],
  blog:{
    post:"Hello World!",
    comments:["this is cool","Hello back"]
  }
}

Оформить заказ - http://www.mongodb.org/
или http://www.mongodb.org/display/DOCS/MapReduce/
для получения дополнительной информации

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