gpt4 book ai didi

java - SQLite 减少 for 循环时间

转载 作者:行者123 更新时间:2023-12-02 12:07:57 24 4
gpt4 key购买 nike

此代码读出我的 sqlite 表的所有条目并将它们放入列表中。我尝试减少线程的加载时间,并在返回列表之前检查所有线程是否已使用 join() 完成。但如果我作为线程进行查询,我会得到一些条目两次。

public ArrayList<ModelTura_spieler> getAllTura_spieler() {
SQLiteDatabase db = this.getReadableDatabase();
final ArrayList<ModelTura_spieler> tura_spielerList = new ArrayList<ModelTura_spieler>();
String selectQuery = "SELECT * FROM tura_spieler";
final Cursor c = db.rawQuery(selectQuery, null);

for(c.moveToFirst(); c.getPosition()!=getTura_spielerCount()-1 ; c.moveToNext()){
ModelTura_spieler tura_spieler = getModelTura_spielerFromCursor(c);
tura_spielerList.add(tura_spieler);
}
return tura_spielerList;
}

如何使用线程减少这个 for 循环的查询时间?

最佳答案

你不能。

Sqlite 不是线程安全的,这意味着您的 SQLiteHelper 默认情况下会锁定您的数据库。

原因是您一次只能通过一个连接/事务进行访问。

使用以下命令定义要抓取的字段,使其速度稍快一些:

SELECT field1,field2,anotherfield FROM tura_spieler

您可能还想要 index这也会提高你的速度。

如果您想根据其他字段查询字段,则需要加入它们。

如果您是 Android 和 Sqlite 新手,您应该看看一个名为 Room 的新 Android 库。它提供了一个易于使用的 paging library

关于java - SQLite 减少 for 循环时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46755170/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com