Вставить, удалить (быстро) блоб встроенной базы данных Java - PullRequest
1 голос
/ 30 ноября 2011

Я ищу встроенную базу данных Java (не могу использовать базу данных вне процесса), которая может обрабатывать большие объекты BLOB-объектов (до нескольких ГБ).Я пробовал H2, но это очень медленно при удалении больших капель.Конечно, это потому, что он должен поддерживать / перестраивать один файл базы данных.

Существуют ли какие-либо базы данных, которые позволят мне быстро вставлять и удалять с помощью BLOB-объектов?

Обновление: в итоге я не использовалбаза данных.Вместо этого я создал хранилище байтов, добавляя байты к открытому файловому потоку и сохраняя имя файла, смещение, длину в базе данных.Большие капли не были добавлены, но сохранены как независимые файлы.Это был единственный способ получить хорошую производительность.Операции удаления будут работать только на больших каплях, они не нужны для маленьких капель, размер был незначительным (мой порог равен 100 КБ)

Ответы [ 3 ]

0 голосов
/ 30 ноября 2011

Существуют ли какие-либо базы данных, которые позволят мне быстро вставлять и удалять блобы?

Если H2 не работает, вы можете попробовать Derby или SQLite , но нет гарантии, что они будут работать лучше. Я думаю, вы должны подумать о ре-архитектуре вашего проекта. Хранение больших объектов BLOB-объектов таким способом очень неэффективно.

Я хотел бы рассмотреть возможность использования какого-либо другого механизма для сохранения файлов и сохранения пути или идентификатора файла в базе данных. Вы упомянули, что у вас есть причины не использовать файловую систему. Если вы отредактируете свой вопрос, чтобы объяснить причины, по которым вы используете базу данных целиком, тогда я / мы можем ответить на лучшие предложения.

0 голосов
/ 30 ноября 2011

Должна ли это быть база данных на чистом Java или драйвер базы данных / JDBC, использующий собственную библиотеку, также разрешен?Если это так, вы можете посмотреть на Firebird Embedded и Jaybird .

Отказ от ответственности: я являюсь одним из разработчиков Jaybird

0 голосов
/ 30 ноября 2011

Вы можете попробовать JavaDB , который в основном является базой данных Apache Derby. Я думаю, он поставляется с Java начиная с версии 6. CLOB и BLOB ограничены 2 ГБ, не знаю, подойдет ли это вам.

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