在Android上使用Ormlite进行多线程读取的性能

时间:2015-01-24 04:41:58

标签: android multithreading performance sqlite ormlite

我想使用Ormlite在Android上使用Sqlite阅读两个不同的表(DAO)。每个表有超过10,000行。

我知道我应该只通过OpenHelperManager.getHelper(context, DatabaseHelper.class);使用一个连接。没问题。

我的问题是,如果我使用两个并行线程来读取这两个表,或者数据库不是用于性能方面的并行访问,那么它会更快吗?

1 个答案:

答案 0 :(得分:1)

SQLiteDatabase在内部有自己的锁定,以使其线程安全并防止并发访问。以前您可以调用setLockingEnabled(false)来影响这一点,但是自API 16以来它已被弃用。但是,从API 11开始,您可以调用enableWriteAheadLogging(),这样就可以在同一个线程上并行执行多个线程的查询数据库。您应该尽早调用此方法,因此请onConfigure()(API 16+)或onOpen()