菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
15
0

h2 web console使用

原创
05/13 14:22
阅读数 3938

  在高并发情况下,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。

发表评论

0/200
15 点赞
0 评论
收藏
为你推荐 换一批