我想使用Ormlite在Android上使用Sqlite阅读两个不同的表(DAO)。每个表有超过10,000行。
我知道我应该只通过OpenHelperManager.getHelper(context, DatabaseHelper.class);
使用一个连接。没问题。
我的问题是,如果我使用两个并行线程来读取这两个表,或者数据库不是用于性能方面的并行访问,那么它会更快吗?
答案 0 :(得分:1)
SQLiteDatabase
在内部有自己的锁定,以使其线程安全并防止并发访问。以前您可以调用setLockingEnabled(false)
来影响这一点,但是自API 16以来它已被弃用。但是,从API 11开始,您可以调用enableWriteAheadLogging()
,这样就可以在同一个线程上并行执行多个线程的查询数据库。您应该尽早调用此方法,因此请onConfigure()
(API 16+)或onOpen()
。