Why is my embedded h2 program writing to a .mv.db

2019-01-18 08:18发布

I followed the quickstart guide on the h2 database website to create a new database a table and insert some data. The application runs smooth and can read and write to the database without problems.

Quickstart h2

  • Add the h2*.jar to the classpath (H2 does not have any dependencies)
  • Use the JDBC driver class: org.h2.Driver
  • The database URL jdbc:h2:~/test opens the database test in your user home directory
  • A new database is automatically created

Now i want to look at the data with the web-frontend h2 console but everytime I try to open my database it just creates a new database.

After a long search I noticed that my Java-App, which uses the h2 embedded version writes to a file called ".mv.db" while the web-frontend creates the file ".h2.db" (which makes much more sense for me)

Also when my App writes to the database it uses extreme amounts of space (80MB for ~600 integer values)
How can I use the ".h2.db" extension for my embedded database?

2条回答
走好不送
2楼-- · 2019-01-18 08:47

This is now automatically enabled since version 1.4.177 Beta (2014-04-12).

You can disable it by adding ;MV_STORE=FALSE and ;MVCC=FALSE to the database URL

By default, the MV_STORE option is enabled, so it is using the new MVStore storage. The MVCC setting is by default set to the same values as the MV_STORE setting, so it is also enabled by default. For testing, both settings can be disabled by appending ";MV_STORE=FALSE" and/or ";MVCC=FALSE" to the database URL.

http://www.h2database.com/html/changelog.html

You should tell us, what exact version of H2 you use.

查看更多
相关推荐>>
3楼-- · 2019-01-18 08:54

.mv.db-files are for the upcoming/beta storage type "MVStore" for H2.

Here is from the http://www.h2database.com/html/changelog.html:

New table engine "org.h2.mvstore.db.MVTableEngine" that internally uses the MVStore to persist data. To try it out, append ";DEFAULT_TABLE_ENGINE=org.h2.mvstore.db.MVTableEngine" to the database URL. This is still very experimental, and many features are not supported yet. The data is stored in a file with the suffix .mv.db.

查看更多
登录 后发表回答