posts - 311, comments - 0, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

(搬运工)常用内存数据库介绍(八)

Posted on 2012-07-20 16:58 点点滴滴 阅读(474) 评论(0)  编辑 收藏 引用 所属分类: 10 服务器

  结论和建议

 SQLiteH2内存数据库都比较快。

 

u       查询性能:查询一条记录 SQLite的性能要优于H2。查询(500010000)条 H2的性能要好于SQLite

u       插入性能:性能差不多快,SQLite略快。

u       更新性能:更新一条记录 SQLite的性能好于H2。更新多条记录(有索引),SQLite0.04s】的性能要好于H20.18s

u       删除性能:删除一条记录.SQLite【非常小】的性能略好于H2【非常小】。删除多条记录,SQLite0.078s】好于H2的【0.12s

u       启动时间:都比较快

u       并发性能:H2的查询支持一定的并发性,要强于SQLite。更新和插入,基本上都没有并发可言。

 

总的看来,SQLite的性能要好于H2,但并发性不如。

另外SQLite一般使用CAPI接口访问,而H2支持JDBC

并且都可以大多数主流平台上

对于C\C++\C#应用而言,使用SQLite是更好的选择。对于Java应用,H2是不错的选择。

 

奇怪的两点:

1.         在无索引查询单条数据,SQLite的性能【0.375s】要比H26.9s】要快非常多。(原因发现是H2使用Big Long效率差了好多,比起Int)

2.         在无索引查询多条数据,SQLite的性能甚至比有索引时还好快一些????。而有索引情况下H2查询多条数据也好于SQLite