我在Xamarin.Android App上使用SQLite,当我选择表上的所有记录(大约44000)时,大约需要25000ms,因此,每秒大约要选择1700〜。
选择不应该更快吗?我尝试了一些不同的尝试,并设法将时间从27000ms减少到25000ms。
此处提供代码:
public List<T> SelectAll()
{
try
{
using (var conn = new SQLiteConnection(DATABASE_PATH, true))
{
Stopwatch w = new Stopwatch();
w.Start();
conn.BeginTransaction();
var result = conn.Table<T>.ToList();
conn.Commit();
w.Stop();
var millis = w.ElapsedMilliseconds;
return result;
}
}
catch (SQLiteException ex)
{
Log.Info(TAG + " - " + SUB_TAG, "There was an exeption selecting data from database: " + ex.Message);
throw;
}
}
我尝试从表中选择所有行的方式有问题吗?
我尝试使用conn.Table()。ToList(),但效果差不多,只是相差100毫秒
答案 0 :(得分:0)
离开通用类型至少是不寻常的。由于您已经知道要从哪个表进行查询,因此最好使用conn.Query<yourType>
而不是conn.Query<T>
。
与List<T>
相同。
希望对您有所帮助。