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

标签 android multithreading performance sqlite ormlite

我想使用 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/

相关文章:

android - 如何将 Activity 中的标题或标签居中对齐?

linux - 为什么我的线程化 Perl 脚本会出现段错误?

c# - 有趣的多线程从 C# 简单循环访问 public int

java - 进行提取方法重构后,代码变慢了 6 倍

c++ - 使用位操作影响内存消耗?

performance - Hibernate/JPA 与 JDBC 性能对比

android - Firebase Storage - 在 Android 中上传多个图像文件

java - DatabaseException : Can't convert object of type java. lang.String 类型 StreetClass

java - 从自定义 slider 拖放不起作用

Java notify() 在 wait() 之前运行?