我想使用 Ormlite 在 Android 上使用 Sqlite 读取两个不同的表 (DAO)。每个表都有超过 10.000 行。
我知道我应该通过 OpenHelperManager.getHelper(context, DatabaseHelper.class);
只使用一个连接。没问题。
我的问题是,如果我使用两个并行线程来读取两个表,是否会更快,或者就性能而言,数据库不适合并行访问?
最佳答案
SQLiteDatabase
在内部有自己的锁以确保线程安全并防止并发访问。以前你可以调用 setLockingEnabled(false)
影响这一点,但自 API 16 起已弃用。但是,自 API 11 起,您可以调用 enableWriteAheadLogging()
,它可以在同一数据库上并行执行来自多个线程的查询。你应该尽早调用它,所以要么在 onConfigure()
(API 16+) 或 onOpen()
.
关于android - 在 Android 上使用 Ormlite 进行多线程读取的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28122372/