Вопрос

Есть ли какие-либо DBS для Java, которые можно запускать во встроенном режиме с некоторыми таблицами, хранящимися в памяти при загрузке других с диска? H2 и Javadb, кажется, являются двумя лидерами Java DBS, и я знаю, что у них обоих есть режим в памяти, но они заставляют вас загружать весь DB в память или вы можете определить на столе?

Это было полезно?

Решение

Это кэшированная таблица FAQ, упомянутая на веб -сайте HSQL.

• Сохраняет ли HSQLDB все данные в памяти. Разве память не закончилась в результате?

• Он хранит все данные в памяти только в том случае, если вы хотите. По умолчанию создайте таблицу, приводит к таблице памяти, так как это лучший тип для небольших таблиц. Для более крупных таблиц используйте создать кэшированную таблицу и отрегулируйте размер кэша, чтобы набирать требования к использованию вашей памяти (всего лишь 8 МБ или около того). См. Главу руководства по управлению системой и развертыванием. Нет простого правила и никакого навязывания со стороны HSQLDB, поскольку максимальная гибкость разрешена использовать только пару настроек. Популярное использование HSQLDB предназначено для приложений OLAP, ETL и интеллектуального анализа данных, где огромные распределения памяти Java используются для содержания миллионов строк данных в памяти.

Я думаю, что кэшированный стол уже достаточно мощный, чтобы удовлетворить ваши потребности.

Из http://hsqldb.org/web/hsqlfaq.html

Сравнение между таблицей кеша и таблицей памяти

Таблицы памяти и кэшированные таблицы обычно используются для хранения данных. Разница между ними заключается в следующем:

Данные для всех таблиц памяти считываются из файла *.Script, когда база данных запускается и хранится в памяти. Напротив, данные для кэшированных таблиц не прочитаются в память, пока таблица не будет доступна. Кроме того, только часть данных для каждой кэшированной таблицы хранится в памяти, позволяя таблицам с большим количеством данных, чем можно хранить в памяти.

Когда база данных выключается нормально, все данные для таблиц памяти записываются на диск. Для сравнения, данные в кэшированных таблицах, которые изменились, записываются во время работы и при выключении.

Размер и емкость кеша данных для всех кэшированных таблиц настраивается. Это позволяет кэшировать все данные в кэшированных таблицах в памяти. В этом случае скорость доступа хорошая, но немного медленнее, чем таблицы памяти.

Для обычных приложений рекомендуется, чтобы таблицы памяти использовались для небольших объемов данных, оставляя кэшированные таблицы для больших наборов данных. Для специальных приложений, в которых скорость имеет первостепенное значение, и доступно большое количество свободной памяти, таблицы памяти также можно использовать для больших таблиц.

Кажется, эта функция еще не поддерживается H2 и Derby (Javadb). Поправьте меня, если это не тот факт.

Другие советы

Большинство баз данных в памяти (например HSQLDB иметь возможность кэшировать некоторые (или все) данные на диск. Обычно он достаточно низкий, поэтому он прозрачен для программиста, но, безусловно, настраивается

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top