2010-04-28 4 views
22

Какая из следующих баз данных лучше всего подходит для большого настольного приложения: Firebird, JavaDB, hsqldb? Мне нужна производительность, простота использования и бесплатная лицензия.Какая лучшая база данных для настольного приложения Java

+1

Этот вопрос также имеет хорошие обсуждения: http://stackoverflow.com/questions/41233/java-and-sqlite –

+0

Что вы хотите сохранить в базе данных? Объекты? XML? примитивные типы? – Catchwa

+1

+1 для BalusC, удар вам нужно принять ответ, который вам нравится, на задаваемые вами вопросы, иначе люди больше не захотят вам отвечать. – dimo414

ответ

34

Если вы ищете встраиваемой базы данных, моя рекомендация будет H2 (расшифровывается Hypersonic 2, (вос) написана автором HSQLDB). См. detailed comparison of features и performances.

Использование базы данных Java на 100% позволило бы запустить ее в том же процессе и упростить работу с ИМО.

+0

H2 выглядит очень хорошо. – BalusC

+4

@BalusC Я отказался от hsqldb и javadb в пользу H2, мне просто нравится. И его [режим совместимости] (http://www.h2database.com/html/features.html#compatibility) (он может «вести себя», как, например, Oracle, DB2 и т. Д.) Отлично подходит для тестирования. –

+0

Эй, это хорошо. Должен признаться, что я не знал, что это означает Hypersonic 2. Это будет новая игрушка, чтобы играть рано или поздно :) – BalusC

1

В зависимости от требований и объема данных. Мой последний выбор был MySQL, и это было очень удобно (качели приложение)

6

Позвольте мне порекомендовать вам на Postgres (http://www.postgresql.org/ ), который является одним из лучших бесплатных децибел я знаю.

У меня был опыт работы с этой БД в моем предыдущем проекте, в котором мы провели ~ 20 таблиц в схеме, у самой большой таблицы было ~ 100 000 строк, а сумма общих данных была не такой большой.

Этот проект работает в производстве более 2 лет, и особых проблем с ним не возникало.

Шей

+5

Если он отправляет настольное приложение, вероятно, выгодно не устанавливать пользователям отдельное приложение базы данных, поэтому ОП дала предложение JavaDB и hsqldb, оба из которых могут быть встроены в Java-приложения. Я не уверен, как Firebird вписывается в это. Разумеется, это никоим образом не копается в Postgres, что, на мой взгляд, является очевидным выбором всякий раз, когда требуется база данных: Desktop или Server. – Geoff

3

Я думаю, вам будет лучше с встраиваемой базой данных для этого. HSQLDB или H2 будут работать, как и SQLite. SQLite довольно популярен вне Java-мира (например, он используется проектом Mozilla). Я не знаком с JavaDB, поэтому я не могу говорить о его возможностях.

Известно, что SQLite довольно быстро.

0

Я бы выбрал СУБД, которая является не Java-specific. Возможно, вам захочется поделиться вашими данными с помощью приложения C++ или .NET. Если не нужно, чтобы клиент/сервер рассматривал SQLite или H2. Если это так, рассмотрите Postgres. Все они имеют драйверы ODBC и/или драйверы для определенных языков, отличных от Java.

3

Firebird очень хорошая база, особенно для настольных приложений

Существует хороший водитель Java.

+2

Специально для «больших настольных приложений». Firebird масштабируется до сотен гигабайт и более. –

3

Моя рекомендация H2. Недавно я перенесла db (с сервера MS SQL), в том числе 2 больших табличных хостинга> 2 миллиона строк в каждой. Сначала я попробовал Derby и имел проблемы (не только производительность) - тогда я переключился на H2 и успешно перенес все.