SQLite 是非常优秀的数据库,能够在真实的生产环境中完成一些真正的工作。官方介绍SQLite非常容易上手,不需要任何经验,5分钟内就可以学会安装SQLite并创建一个新的数据库。使用SQLite可以快速的搭建数据库开发环境,提供轻松、自容器、无配置、无独立服务的数据库环境,所有数据保存在一个文件里。
H2 数据库是一个用 Java 开发的嵌入式(内存级别)数据库,它本身只是一个类库,也就是只有一个 jar 文件,可以直接嵌入到项目中。H2数据库又被称为内存数据库,因为它支持在内存中创建数据库和表。所以如果我们使用H2数据库的内存模式,那么我们创建的数据库和表都只是保存在内存中,一旦服务器重启,那么内存中的数据库和表就不存在了。
下面从性能方面对H2和SQLite做一个比较:
查询性能:查询一条记录 SQLite的性能要优于H2。
查询(5000或10000)条 H2的性能要好于SQLite。
插入性能:性能差不多快,SQLite略快。
更新性能:更新一条记录 SQLite的性能好于H2。更新多条记录(有索引),SQLite【0.04s】的性能要好于H2【0.18s】
删除性能:删除一条记录.SQLite【非常小】的性能略好于H2【非常小】。删除多条记录,SQLite【0.078s】好于H2的【0.12s】
启动时间:都比较快
并发性能:H2的查询支持一定的并发性,要强于SQLite。更新和插入,基本上都没有并发可言。
总的看来,SQLite的性能要好于H2,但并发性不如。另外SQLite一般使用C的API接口访问,而H2支持JDBC。并且都可以大多数主流平台上对于C\C++\C#应用而言,使用SQLite是更好的选择。对于Java应用,H2是不错的选择。
奇怪的两点:
1.在无索引查询单条数据,SQLite的性能【0.375s】要比H2【6.9s】要快非常多。(原因发现是H2使用Big Long效率差了好多,比起Int)
2.在无索引查询多条数据,SQLite的性能甚至比有索引时还好快一些,而有索引情况下H2查询多条数据也好于SQLite。
通过上文中的介绍,相信大家现在对于SQLite和H2内存数据库这两种内存数据库已经有了很好的了解,这样就便于大家以后在工作中使用SQLite和H2内存数据库。
H2数据库的使用:http://www.h2database.com/
SQLite数据库教程:https://www.runoob.com/sqlite/sqlite-tutorial.html