【问题标题】:What does MV_STORE = false mean when connecting to H2 database?连接到 H2 数据库时 MV_STORE = false 是什么意思?
【发布时间】:2020-12-08 23:27:02
【问题描述】:

我正在开发一个带有 GUI 的嵌入式数据库以与之通信。

我很好奇我的网址中的MV_STORE = false 是什么意思?

public DBconnect() throws SQLException, ClassNotFoundException{
        clients = FXCollections.observableArrayList();
        Class.forName("org.h2.Driver");
        c = DriverManager.getConnection
                ("jdbc:h2:~/Database;MV_STORE=false", "admin", "Fitness1");
    } 

【问题讨论】:

  • 好问题。但请在此处发帖时使用正确的英语:“I am”或“I'm”,而不是“im”。这个网站更像是维基百科,而不是一个休闲聊天室。这次我编辑了你的文字。

标签: java h2


【解决方案1】:

存储引擎

H2 提供了多个storage engine 用于保存数据。

MVStore 是这些存储引擎之一,是最新的和当前的默认值。

引用彻底的documentation page on MV_STORE

H2 存储引擎

对于 H2 1.4 及更高版本,MVStore 是默认存储引擎(支持 SQL、JDBC、事务、MVCC 等)。对于旧版本,请将 ;MV_STORE=TRUE 附加到数据库 URL。

据推测,将该标志设置为 false 会使用备用存储引擎。

是否选择 MVStore

至于你为什么会选择使用或避免使用MVStore,我不知道详情。一个搜索引擎在 2015 年 8 月以 Thomas 的名字出现了 this old Google Groups post,所以我想知道这可能是 H2 的发明者 Thomas Mueller。

嗨,

MVStore 相对较新,还不如旧的存储机制(PageStore)成熟。另请参阅 http://h2database.com/html/mvstore.html 的文档。与 PageStore 相比的一些优点是:多版本、更简单、更多并发、写入更少、针对 SSD 进行了优化。缺点是暂时需要更多的磁盘空间,目前速度有点慢。

PageStore 已经相当成熟,未来一段时间会得到支持。但是,支持最终会被淘汰。

问候,

托马斯

我假设现在在 2020 年与 2015 年相比,并且作为 H2 版本 1.4 的默认设置,关于“新且尚未成熟”的部分不再是这种情况。

多版本并发控制(MCC 或 MVCC)

通过一些快速搜索和阅读,新的 MVStore 和旧的 PageStore 之间的主要区别似乎是对 multiversion concurrency control (MCC or MVCC) 的支持。

  • MVCC 支持是较新的 MVStore 的一项关键功能,并且始终处于启用状态。
  • 旧版 PageStore 中的 MVCC 支持是实验性的,最终放弃了。

查看问题页面:


顺便说一句,通常建议使用javax.sql.DataSource 实现来获取连接,而不是使用您的示例代码中看到的DriverManager

H2 提供了org.h2.jdbcx.JdbcDataSource 类作为这样的实现。有关您可以设置的选项列表,请参阅 this documentation page

JdbcDataSource ds = new org.h2.jdbcx.JdbcDataSource();
ds.setURL( "jdbc:h2:~/Database" );
ds.setUser( "scott" );
ds.setPassword( "tiger" );
return ds ;  // Return as the more general `javax.sql.DataSource` rather than H2-specific implementation.

【讨论】:

  • 另一种存储引擎是什么?在什么情况下将 MV_STORE 设置为 false?
  • @GPell7 我添加了另一个部分来解决您的评论。
猜你喜欢
  • 2019-04-19
  • 2013-03-02
  • 2011-12-18
  • 1970-01-01
  • 1970-01-01
  • 2014-11-05
  • 2018-03-03
  • 2021-12-10
  • 2010-12-01
相关资源
最近更新 更多