六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 185|回复: 0

H2数据库引擎研究导言

[复制链接]

升级  4.67%

13

主题

13

主题

13

主题

秀才

Rank: 2

积分
57
 楼主| 发表于 2013-1-14 23:03:45 | 显示全部楼层 |阅读模式
  有好长一段时间没有写博客了,最近这段时间觉得自己的Java基础不是很扎实,所以又重新捡起《Think in Java》这本来看了。Java高级特性更是接触得少,如网络编程,多线程编程等,所以最近就想开始学习这些内容,已经看了一段时间,以前就有看一些好的开源软件源代码的想法,也陆陆续续看了一些,但都没坚持下来,这次要下定决心好好看一个软件的源代码,数据库的一些高级特性和优化方面也涉及的很少,最近也想好好学习学习,所以由于以上一些想法就产生了研究一个java编写的数据库的想法。
  Java编写的数据库有不少,有Deby,H2sdb和H2等等数据库,选择一个合适的数据库深入研究一下非常有必要,它必须具备以下特性。
1.不能太庞大,必须小巧精悍,易于阅读代码。
2.使用Java代码编写,而且代码质量高,具有较高的可借鉴性。
3.具有比较完备的数据库特性,如支client/server连接,能够支持标准的SQL语句,支持存储过程等。
4.具有良好的性能。
  根据这些特点最终选择了H2,其实任何一个能够被大量应用和广泛使用的软件都应该非常不错,Deby,H2sdb也是非常不错的数据库,但是任何东西都是只有最适合的,没有最好的,H2可以用于学习、小型应用中,但是企业级的实际生成中我暂时是不敢使用H2的,可是随着以后的发展谁也不好说,而且最近springside 3.2.1也将它演示和测试用的数据库改成了H2,看来H2已经得到了很多开源人示的支持。
  如下是它官网上的性能比较,通过这些比较你就能看出它与其它的数据库相比,可以得出结论:它是在开源数据库中一个支持的特性最多,体积最小而且是纯Java编写数据库,这正是我所需要的。It's a best choice for me!
 
 
H2
Derby
HSQLDB
MySQL
PostgreSQL
Pure Java(纯JAVA编写)
Yes
Yes
Yes
No
No
Memory Mode(内存模式)
Yes
Yes
Yes
No
No
Transaction Isolation(事隔离)
Yes
Yes
No
Yes
Yes
Cost Based Optimizer(基于成本优化器)
Yes
Yes
No
Yes
Yes
Encrypted Database(加密数据库)
Yes
Yes
No
No
No
ODBC Driver
Yes
No
No
Yes
Yes
Fulltext Search(全文检索)
Yes
No
No
Yes
Yes
Multi Version Concurrency(多版本并发控制
Yes
No
No
No
Yes
Footprint (jar/dll size)(体积)
~1 MB
~2 MB
~600 KB
~4 MB
~6 MB
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表