Почему моя встроенная программа h2 записывает в файл .mv.db
Я выполнил руководство по быстрому старту на веб-сайте базы данных h2, чтобы создать новую базу данных и вставить некоторые данные. Приложение работает бесперебойно и может без проблем читать и записывать в базу данных.
Быстрый старт h2
- Добавьте h2 *.jar в путь к классам (у H2 нет зависимостей)
- Используйте класс драйвера JDBC: org.h2.Driver
- URL-адрес базы данных jdbc: h2: ~/test открывает тест базы данных в домашнем каталоге пользователя
- Новая база данных автоматически создается
Теперь я хочу посмотреть данные с помощью консоли web-frontend h2, но каждый раз, когда я пытаюсь открыть свою базу данных, она просто создает новую базу данных.
После долгого поиска я заметил, что мое Java-приложение, которое использует встроенную версию h2, записывает в файл под названием ".mv.db", в то время как веб-интерфейс создает файл ".h2.db" (что имеет гораздо большее значение для меня)
Также, когда мое приложение записывается в базу данных, оно использует экстремальные объемы пространства (80 МБ для ~ 600 целых значений)
Как я могу использовать расширение ".h2.db" для встроенной базы данных?
Ответы
Ответ 1
Теперь это автоматически включается с версии 1.4.177 Beta (2014-04-12).
Вы можете отключить его, добавив ;MV_STORE=FALSE
и ;MVCC=FALSE
в URL-адрес базы данных
По умолчанию параметр MV_STORE включен, поэтому он использует новый Хранилище MVStore. По умолчанию параметр MVCC установлен на те же значения как параметр MV_STORE, поэтому он также включен по умолчанию. Для тестирование, обе настройки можно отключить, добавив "; MV_STORE = FALSE" и/или "; MVCC = FALSE" в URL-адрес базы данных.
http://www.h2database.com/html/changelog.html
Вы должны сказать нам, какую именно версию H2 вы используете.
Ответ 2
.mv.db файлы предназначены для следующего типа бета-хранилища "MVStore" для H2.
Вот из http://www.h2database.com/html/changelog.html:
Новый движок таблицы "org.h2.mvstore.db.MVTableEngine", который внутренне использует MVStore для сохранения данных. Чтобы попробовать, добавьте "; DEFAULT_TABLE_ENGINE = org.h2.mvstore.db.MVTableEngine" для URL-адрес базы данных. Это все еще очень экспериментально, и многие функции пока не поддерживается. Данные хранятся в файле с суффиксом .mv.db.