2016-05-31 4 views
0

Я хочу иметь базу данных SQL на основе файлов для моего приложения Spring Boot, которое не нуждается в выделенном сервере базы данных и работает из коробки, что-то вроде HSQLDB или H2. Кроме того, я хочу, чтобы эта база данных работала в основном на файловой системе и ограничивала ее использование в памяти. Однако, независимо от того, использую ли я HSQLDB или H2, изменения сохраняются только на диске при выключениях, а использование памяти взрывается.Ограничить использование встроенной памяти БД и немедленно записать в файл

Я хочу немедленно сохранить все изменения в моей базе данных на диск и не хранить все это в памяти все время.
My Spring Boot datasource url в настоящее время: jdbc:hsqldb:file:data/xxx.

Я не понимаю возможности HSQLDB и H2 или мне не хватает настроек конфигурации?

ответ

1

Это настраивается

jdbc:hsqldb:file:filename;hsql.default_table_type=cached;hsqldb.cache_size=500;hsqldb.write_delay=false 

Настройки указывают таблицы диска на основе, с 500KB используется для кэш-памяти (фактическое использование памяти, возможно, в два раза больше) и немедленного написания изменений на диск.

+0

Я уже опробовал эти настройки. На этот раз я посмотрел тяжелее и нашел свою проблему: ни Windows Directory Explorer по умолчанию, ни инструмент поиска файлов «Все» не показывают/не обновляют динамически изменяющийся размер файлов HSQLDB: вы должны щелкнуть правой кнопкой мыши по файлам и щелкнуть свойства, чтобы см. его текущий размер! Свойства дисков обновляют правильное используемое/свободное пространство, щелкая по окну. Я думаю, это потому, что файлы хранятся в HSQLDB. При закрытии моего приложения размер файла будет обновляться, поэтому я думал, что он не работает во время выполнения. – Traubenfuchs

Смежные вопросы