在Android上使用带有OrmLite的H2数据库加速问题

时间:2013-05-14 00:05:33

标签: android performance h2 ormlite

我正在编写一个需要数据库的Android应用程序。我不会使用sqlite,因为我想要一个没有依赖于orroids库的纯Java核心。为了简化数据库访问,我正在使用ORMLite。

所以我刚刚比较了ORMLite android examples HelloAndroid和HelloAndroidH2。 我已经减少了两个示例的功能来读取操作。 测试表(2个列,primary_key;值)包含2个数据集。

结果:

  • SQLite:结果立即显示
  • H2:加载结果需要大约两秒钟。

错误在哪里或是正确的? h2真的需要这么长的时间来加载两个数据集吗?还有其他经历吗?

1 个答案:

答案 0 :(得分:2)

使用默认选项打开H2数据库在Android上as documented相对较慢。有几种方法可以改进,大多数都是documented in the Android section of H2

  • FILE_LOCK = FS(使用本机文件锁定;保存至少20毫秒)
  • PAGE_SIZE = 1024(使用较小的页面大小似乎可以提高性能)
  • CACHE_SIZE = 8192(以避免为缓存使用过多的堆内存)

同样重要的是使用空的用户名和密码。如果不这样做,则密码会被哈希处理,这在Android上相对较慢。

但无论如何我认为你不可能在不久的将来获得与SQLite相同的开放速度,抱歉。