h2 web console使用

Posted 太白的技术博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了h2 web console使用相关的知识,希望对你有一定的参考价值。

  在高并发情况下,in memory模式下h2的性能要远高于sqlite(单线程下,还是sqlite高很多),当前版本MVStore作为H2的默认存储引擎,无需参数控制。

安装h2 windows版本

C:\\Program Files (x86)\\H2\\bin>java -cp h2-1.4.200.jar org.h2.tools.Shell

Welcome to H2 Shell 1.4.200 (2019-10-14)
Exit with Ctrl+C
[Enter]   jdbc:h2:~/test
URL       jdbc:h2:d:/test/h2db
[Enter]   org.h2.Driver
Driver
[Enter]
User      sa
Password
Type the same password again to confirm database creation.
Password
Connected
Commands are case insensitive; SQL statements end with \';\'
help or ?      Display this help
list           Toggle result list / stack trace mode
maxwidth       Set maximum column width (default is 100)
autocommit     Enable or disable autocommit
history        Show the last 20 statements
quit or exit   Close the connection and exit

 

 完整的SQL可以点击下列HELP:

 

总的来说,h2的bug还是挺多的、open状态的bug其实也不少,可以参见https://github.com/h2database/h2database/issues。

h2测试时,有一个比较高效的方法,即其他源生成csv文件,然后通过CSVREAD查询结果。通过CSVWRITE写到CSV文件。

call CSVWRITE(\'d:\\\\h2\\\\ta4.csv\', \'select * from ta4\', \'charset=UTF-8 fieldSeparator=| writeColumnHeader=false\');
select * from csvread(\'d:\\\\h2\\\\ta4.csv\', \'FUND_CODE|FUND_TYPE|REAL_SHARES_SUM|TOTAL_REAL_SHARES\', \'charset=UTF-8 fieldSeparator=|\');
create table tmp_ta4 as select * from csvread(\'d:\\\\h2\\\\ta4.csv\', \'FUND_CODE|FUND_TYPE|REAL_SHARES_SUM|TOTAL_REAL_SHARES\', \'charset=UTF-8 fieldSeparator=|\');

 

  有时候h2会发生在create table时无法锁定sys表的情况,参见:https://stackoverflow.com/questions/26511508/timeout-trying-to-lock-table-sys。但是通过查看INFORMATION_SCHEMA,没有发现sys表,应该是一个内部表。如果是1.3版本,可以升级到1.4使用MVCC,如果是1.4,只能考虑增加DEFAULT_LOCK_TIME及LOCK_TIME。

以上是关于h2 web console使用的主要内容,如果未能解决你的问题,请参考以下文章

使用 IDEA 连接到 H2

Confluence 6 H2 数据库连接与合并整合

Confluence 6 H2 数据库连接与合并整合

无法找到或加载主类 org.h2.tools.Console

内存模式下的H2数据库无法被Console访问

webstorm代码片段的创建