2013-05-14 53 views
1

我正在編寫一個需要數據庫的android應用程序。我不會使用sqlite,因爲我想要一個沒有任何依賴到androids庫的純java內核。爲了簡化我使用ORMLite的數據庫訪問。在Android上使用H2數據庫與OrmLite的速度問題

所以我剛剛比較了ORMLite android examples HelloAndroid和HelloAndroidH2。 我減少了這兩個示例的功能來讀取操作。 測試表(2 colums,primary_key; value)包含2個數據集。

結果:

  • SQLite的:結果會立即出現
  • H2:大概需要兩秒鐘加載搜索結果。

該錯誤在哪裏或是否正確? h2確實需要這麼長時間才能加載兩個小型數據集?任何其他經驗?

+0

對不起,開啓和關閉連接需要這麼長時間! O_o 但是,它的速度非常快! – user2379652 2013-05-14 00:20:11

+0

我可以問_why_你想不需要「依賴到androids庫」嗎?你在Android上運行,所以這是不可能的。 – Gray 2013-05-14 12:41:06

+0

@Gray我不需要依賴項,因爲項目是一種應該支持不同曲面(app,web,swing)的庫項目。 – user2379652 2013-06-18 20:09:49

回答

1

在Android上使用默認選項打開H2數據庫相對較慢,as documented。有改善的那幾個方面,其中大部分是documented in the Android section of H2

  • FILE_LOCK = FS(使用本地文件鎖定;節省至少20毫秒)
  • PAGE_SIZE = 1024(使用較小的頁面大小似乎以提高性能在這裏)
  • CACHE_SIZE = 8192(避免使用過多的堆內存高速緩存)

也使用空用戶名和密碼非常重要。如果你不這樣做,那麼密碼是散列的,在Android上相對較慢。

但無論如何,我認爲你不可能在不久的將來獲得與SQLite相同的開放速度,對不起。