H2数据库引擎研究导言
有好长一段时间没有写博客了,最近这段时间觉得自己的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 |
||||
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 |
已有 0 人发表留言,猛击->> 这里<<-参与讨论
ITeye推荐