Java 连接到H2数据库时,MV_STORE=false表示什么?

Java 连接到H2数据库时,MV_STORE=false表示什么?,java,h2,Java,H2,我正在开发一个带有GUI的嵌入式数据库来与之通信 我很好奇我的URL中的MV_STORE=false是什么意思 public DBconnect()抛出SQLException,ClassNotFoundException{ clients=FXCollections.observearraylist(); Class.forName(“org.h2.Driver”); c=DriverManager.getConnection (“jdbc:h2:~/Database;MV_STORE=fal

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

我很好奇我的URL中的
MV_STORE=false
是什么意思

public DBconnect()抛出SQLException,ClassNotFoundException{
clients=FXCollections.observearraylist();
Class.forName(“org.h2.Driver”);
c=DriverManager.getConnection
(“jdbc:h2:~/Database;MV_STORE=false”、“admin”、“Fitness1”);
} 
存储引擎 提供了多个用于保存数据的选项

➥ MVStore是这些存储引擎中的一个,是最新的,也是当前默认的

引用这篇详尽的文章:

H2存储引擎

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

假定将该标志设置为false将启用替代存储引擎

是否选择MVStore 至于你为什么选择使用或避免使用MVStore,我不知道细节。2015-08年出现了一个名为Thomas的搜索引擎,所以我想知道这是否是Thomas Mueller,H2的发明者

MVStore相对较新,还不如旧的存储机制(PageStore)成熟。另请参见中的文档。与PageStore相比,PageStore的一些优点是:多版本、更简单、更并发、写操作更少、针对SSD进行了优化。缺点是它暂时需要更多的磁盘空间,并且当前速度稍慢

PageStore已经相当成熟,在未来一段时间内将得到支持。然而,支持最终将被逐步取消

问候,

托马斯

我假设现在是2020年,而不是2015年,作为H2版本1.4的默认版本,关于“新的但尚未成熟”的部分不再是这样

多版本并发控制(MCC或MVCC) 从一些快速的搜索和阅读中,新的MVStore和旧的PageStore之间的一个主要区别似乎是支持

  • MVCC支持是较新的MVStore的一项关键功能,并且始终处于启用状态
  • 旧PageStore中的MVCC支持是实验性的,最终被放弃
见问题页面:

  • 2018-06年开业

顺便说一下,通常建议使用实现来获取连接,而不是使用示例代码中的
DriverManager

H2提供了
org.H2.jdbcx.JdbcDataSource
类作为实现。有关可以设置的选项列表,请参见

JdbcDataSource ds=new org.h2.jdbcx.JdbcDataSource();
setURL(“jdbc:h2:~/Database”);
ds.setUser(“斯科特”);
ds.设置密码(“老虎”);
返回ds;//返回为更通用的“javax.sql.DataSource”,而不是特定于H2的实现。

问得好。但在这里发帖时请使用正确的英语:“我是”或“我是”,而不是“我”。这个网站应该更像维基百科,而不是一个随意的聊天室。这次我编辑了你的文本。什么是替代的存储引擎?在什么情况下会将MV_存储设置为false?@GPell7我添加了另一个部分来回应你的评论。