Какую СУБД посоветуете при работе с древовидными структурами данных?

Проект на стадии проектирования. Выбираю СУБД. Веб-сервер nginx с FastCGI (PHP), на борту Ubuntu server 12.10 x64. Это веб морда, которая позволяет пользователям редактировать некую информацию в базе данных. Основные данные в БД, похожи на большое дерево, где есть один корневой элемент с приличным количеством дочерних, а у дочерних свои дочерние и т.д…


Хотелось бы услышать совет, что выбирать.Так же, не хотелось бы, что-то совсем экзотическом, ведь мне нужно хранить небольшое количество не древовидных данных. Пользователи, тексты некоторых страниц и прочее.


Возможно это глупо, поскольку я мало компетентен в данном вопросе. Но я выбирал между MySQL и PostgreSQL.


Кроме того, очень важна сохранность БД. Хочу делать бекапы / репликации автоматически, и желательно на другой сервер. Хоститься буду наверно на каком нибудь VPS + куплю второй от другого хостинг провайдера, что бы туда бекапы сливать.
  • Вопрос задан
  • 4004 просмотра
Пригласить эксперта
Ответы на вопрос 4
@1nd1go
Neo4j — это правильный выбор для графов.

Касательно реализации в RDBMS, есть книга Joe Celko — Tree and Hierarchies in sql for smarties. Последнее слово должно намекать на противоречие с фразой из предыдущего ответа: «с помощью «традиционных» решений такую функциональность можно реализовать довольно легко.» :)
Ответ написан
Комментировать
@usetester
Postgresql кроме вышеперечисленых плюшек специально для работы с деревьями еще имеет расширение ltree. Postgres посложнее mysql, но по уровню функциональности сравнивать их сложно…
Ответ написан
Комментировать
@egorinsk
Не проще ли освоить алгоритмы вроде Nested Sets и подобных?
Ответ написан
Комментировать
shai_hulud
@shai_hulud
Очень советую MongoDB, хранит деревья(называются документами), умеет строить запросы по документам. Но есть 2 нюанса:
— Нет транзакций (есть атомарные операции обновления)
— Нет знакомого языка запросов (SQL)

Основные идеи монгодб:
www.mongodb.org/display/DOCS/Philosophy

По перфомансу — на выборки будет быстрее Postgre с рекурсивными запросами. На запись будет всегда быстрее Postgre. Это согласно тестам которые мы проводили.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы