1

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

所以我刚刚比较了ORMLite android 示例 HelloAndroid 和 HelloAndroidH2。我已经将这两个示例的功能都简化为读取操作。测试表(2 列,primary_key;value)包含 2 个数据集。

结果:

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

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

4

1 回答 1

2

使用默认选项打开 H2 数据库在 Android 上相对较慢,如文档所述。有几种改进方法,其中大部分都记录在 H2 的 Android 部分

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

同样重要的是使用空的用户名和密码。如果你不这样做,那么密码会被散列,这在 Android 上相对较慢。

但无论如何我认为你在不久的将来将无法获得与SQLite相同的打开速度,对不起。

于 2013-05-14T05:54:35.570 回答