Любой
или
, Какой, который Вы используете, ваше дело, завися, сколько производительности и в каком количестве устойчивости Вы нуждаетесь.
разработчик H2 поднял хорошую оценку результатов деятельности:
http://www.h2database.com/html/performance.html
Я понимаю, что Вы упомянули просмотр SQL, но все остальное в Вашем вопросе заставляет меня хотеть предложить, чтобы Вы также рассмотрели DB4O, который является большой, простой объект DB .
Я лично одобряю HSQLDB, но главным образом потому что это было первым, я попробовал.
H2, как говорят, быстрее и обеспечивает более хороший GUI frontend (который универсален и работает с любым драйвером JDBC, между прочим).
, По крайней мере, HSQLDB, H2 и Derby обеспечивают режимы сервера, который является большим для разработки, потому что можно получить доступ к DB с приложением и некоторым инструментом одновременно (который встроил режим, обычно не позволяет).
Я использовал Derby, и я действительно ненавижу, это - функции преобразования типа данных, особенно функции даты/времени. (Тип числа) <-> преобразование Varchar это - боль.
Так, чтобы при планировании преобразований типа данных использования в операторах DB рассмотрели, использование othe встроило DB, я изучаю его слишком поздно.
HSQLDB может вызвать проблемы для крупных приложений, его не совсем настолько стабильный.
лучшее я услышал (не собственный опыт однако), berkleyDB. Но если Вы открытый исходный код это, это не будет стоить Вам, рука и участок для использования из-за лицензирования... видят этот http://www.oracle.com/technology/software/products/berkeley-db/htdocs/licensing.html для деталей.
PS berkleyDB не является реляционной базой данных в случае, если Вы не знали.
Большинство вещей уже было сказано, но я могу просто добавить, что использовал HSQL, Derby и DB Berkely в нескольких моих любимых проектов, и они все работали просто великолепно. Таким образом, я не думаю, что действительно имеет значение очень быть честным. Одна вещь, которую стоит упомянуть, состоит в том, что HSQL сохраняет себя как текстовый файл с SQL-операторами, который довольно хорош. Делает его действительно легким для того, когда Вы разрабатываете, чтобы сделать тесты и данные установки быстро. Может также сделать быстрые редактирования в случае необходимости. Угадайте, что Вы могли легко передать все это любой базе данных, если когда-нибудь необходимо изменяться также:)
Я - большой поклонник DB4O и для.Net и для Java.
Производительность стала намного лучше начиная с ранних выпусков. Модель лицензирования не слишком плоха, также. Мне особенно нравятся опции, доступные для запросов Ваших объектов. Запрос примером очень мощен и легок привыкнуть к.
Какие критерии Вы будете использовать для оценки их? Если Вы еще не знаете, то Вы не должны решать прямо сейчас. Попытайтесь подать свою заявку как агностика реализации базы данных, как Вы можете - обеспечение соответствующих оберток, объекты доступа к данным и т.д., и принимать это решение, когда у Вас есть все факты для вручения, и необходимо решить.
при использовании реляционных баз данных и SQL тогда вышеупомянутое не должно быть слишком твердым (использующий JDBC и т.д.). Удостоверьтесь, что у Вас есть много окружения тестов так, чтобы, когда Вы хотите переключиться между базами данных, можно было решить, что функциональность приложения остается тем же.
я столкнулся с той же проблемой некоторое время назад. Я не знал, для какой базы данных пойти, таким образом, мое первое решение использовало Derby (или HSQLDB?), и я позже смог переключиться на HSQLDB (или Derby? Не может помнить, какое решение работало), как только я определил, где у меня были проблемы (касающийся производительности) и какое решение будет действительно работать на меня.
встроенный, находящийся на диске, полностью транзакционный механизм персистентности Java, который хранит данные, структурированные в графиках, а не в таблицах
, у меня не было шанса попробовать их все же - но это выглядит очень перспективным. Обратите внимание, что это не база данных SQL - Ваш граф объектов сохраняется для Вас - таким образом, это не могло бы подходить для Вашего существующего приложения.
Мы используем HSQLDB в производстве как опция "без конфигураций" для нашего приложения. Это позволяет людям испытывать без стычки установки реальной базы данных.
Однако мы делаем не поддержка это для нормальной эксплуатации. Причины - несколько:
Для (по крайней мере 2) и (3), существуют пути вокруг этого, но это трудно; намного легче, например, MySQL установки.
Java DB (распределение Sun Derby Apache) теперь поставлется в JDK 6!
я требовался, чтобы сделать что-то как Jason Cohen и думал, что это похоже на самый легкий способ находиться в дистрибутиве JDK (какая из прошлой недели является теперь требованием для моего приложения). Или возможно я просто ленив тот путь.
HSQLDB является хорошим кандидатом (то, что он используется в OpenOffice, может, убедил некоторых из Вас), но для такого маленького персонального приложения, почему не использование объектной базы данных (вместо классической реляционной базы данных)?
я использовал DB4O в одном из моих проектов, и я очень удовлетворен им. Будучи объектно-ориентированными, Вы не нуждаетесь в целом уровне Hibernate и можете непосредственно вставить/обновить/удалить/запросить объекты! Кроме того, Вы не должны волноваться о схеме, Вы непосредственно работаете с объектами, и DB4O делает остальных!
я соглашаюсь, что это может занять время, чтобы привыкнуть к этому новому типу базы данных, но проверить учебное руководство DB40, чтобы видеть, как легкий это делает работу с DB!
РЕДАКТИРОВАНИЕ: Как сказано в комментариях, DB4O обрабатывает автоматически более новые версии классов. Кроме того, инструмент для просмотра и обновления базы данных за пределами приложения доступен здесь: http://code.google.com/p/db4o-om/
Я пошел бы с H2, производительность предназначена к намного лучше, чем Derby. Читайте http://www.h2database.com/html/performance.html для большего количества информации
Я использую Apache Derby для в значительной степени всех моих потребностей встроенной базы данных. Можно также использовать DB Java Sun, который основан на Derby, но последняя версия Derby является намного более новой. Это поддерживает много опций, которые поддерживают коммерческие, собственные базы данных, но намного меньше и легче встроить. У меня были некоторые таблицы базы данных больше чем с миллионом записей без проблем.
я раньше использовал HSQLDB и Сверхзвуковой приблизительно 3 года назад. Это имеет некоторые главные проблемы производительности в то время, и я переключаюсь на Derby от него из-за тех проблем. Derby был тверд, даже когда это было в инкубаторе в Apache.
Думаю, я немного опоздал (сильно опоздал ;-)) на этот пост, но я хотел бы добавить Perst, объектно-ориентированную встроенную базу данных с открытым исходным кодом для Java. &.СЕТЬ. на ваше рассмотрение. Perst - это встроенная база данных с открытым исходным кодом / двойной лицензией для Java. Дистрибутив совместим с платформой Google Android, а также включает Perst Lite для Java ME. Мы даже создали тестовый тест Android и подготовили технический документ по этому вопросу ... вы можете посмотреть здесь: http://www.mcobject.com/index.cfm?fuseaction=download&pageid=581§ionid=133
Всего наилучшего, Крис