База данных: реляционная / нереляционная / объектно-ориентированная ... Что выбрать? - PullRequest
2 голосов
/ 30 марта 2010

Я портирую веб-сайт, созданный для механизма приложений, для запуска на выделенном сервере. Это кодируется в Java, и я ищу базу данных, чтобы заменить Google DataStore.

Моей первой мыслью был MySql, потому что все его используют, но мне не нравится SQL, и я думаю, что мне будет удобнее использовать OODB или что-то еще.

С хранилищем данных Google я могу изменять свои модели и вообще не беспокоиться об определении базы данных. Я знаю, с помощью MySql это невозможно. И я не хочу пропустить это.

А если я использую OODB, что я должен использовать? Как насчет производительности по сравнению с MySql?

Ну, любая идея или совет действительно помогут мне, так как я ничего не знаю о базах данных.

Редактировать: о данных, которые обрабатывает сайт, это сайт микроблогов в стиле Twitter, но там, где в сообщениях есть свои комментарии. О количестве данных расскажет только будущее, но я строю его так, как будто он станет популярным, конечно.

Редактировать 2: Теперь приложение не , использующее JDO / JPA, я только что сделал небольшой слой вокруг API низкого уровня хранилища данных app-engine.

Редактировать 3: Интересно, смогу ли я использовать db4o? Правильно ли для сайта использовать db4o?

Ответы [ 4 ]

2 голосов
/ 30 марта 2010

Я не знаю функций хранилища данных Google, но я хочу дать два евроцента. Трудно сказать, не зная ваших текущих и будущих ожидаемых моделей использования данных. Одна вещь, которая ясна, это знание. Все решения SQL (в частности, MySQL и Postgres) надежны и документированы с точки зрения производительности, использования и особенностей. Вы знаете, во что ввязываетесь, и любые неприятности, которые у вас могут возникнуть, скорее всего, уже произошли и были решены. С другими решениями вы больше по своему усмотрению.

Имейте это в виду. не полный ответ, просто мнение.

1 голос
/ 03 апреля 2010

Что ж, после некоторого исследования я обнаружил, что db4o не является хорошим выбором для веб-сайтов, потому что он не может справиться с высоким параллелизмом (я связался со службой поддержки, и вот что они сказали мне)

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

Я проанализировал много вариантов, и это, кажется, лучше для этого случая.

0 голосов
/ 30 марта 2010

По данным Google:

Google App Engine включает поддержка двух разных API стандарты для хранилища данных: Java Объекты данных (JDO) и Java Постоянство API (JPA). Эти интерфейсы предоставляются Платформа DataNucleus Access , реализация с открытым исходным кодом нескольких Стандарты сохраняемости Java, с адаптер для хранилища данных App Engine.

http://code.google.com/appengine/docs/java/gettingstarted/usingdatastore.html

Исходя из этого, я бы предложил взглянуть на JDO и DataNucleus, чтобы обеспечить постоянство данных. Тем более, что вам нужна та же функциональность, что и в App Engine.

0 голосов
/ 30 марта 2010

В версии вашего движка приложения вы использовали API JDO или JPA?Если это так, вы можете продолжать использовать те, которые имеют SQL-сервер.Datanucleus поддерживает множество различных бэкэндов для своих API JDO и JPA.

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