使用哪种方法在 SQLite 中搜索大量记录 QueryAsync 或 Query

Posted

技术标签:

【中文标题】使用哪种方法在 SQLite 中搜索大量记录 QueryAsync 或 Query【英文标题】:Which method to use to search huge records QueryAsync or Query in SQLite 【发布时间】:2014-11-24 15:34:48 【问题描述】:

说,我这几个月积累了大量的记录,那么该使用哪种方法呢?

1.下面的交易记录很大时,速度有区别吗?

2.如果下面不好。使用什么方法来搜索超过 10 000 条仅包含客户详细信息(如姓名、地址、联系人或其他)的记录。

3.我应该考虑备份现有数据库并在删除旧数据库后重新创建新数据库的记录大小。

1) 查询异步 var db = new SQLiteAsyncConnection(DBPath); var allitems = await db.QueryAsync("Select * From Customer Where CompanyName ='" + Class1.Company + "'" + " AND No ='" + No + "'"); 2) 非异步 var db = new SQLiteConnection(DBPath); var allitems = db.Query("Select * From Customer Where CompanyName ='" + Class1.Company + "'" + " AND No ='" + No + "'");

【问题讨论】:

【参考方案1】:

只使用Query 就可以了。 QueryAsync 可能不会提供太多性能提升。

10,000 条记录并不是很多,因此您的查询应该很快。如果还没有,您可以在Customer 表上创建索引,这将大大加快查询速度。

例如...

CREATE INDEX CompanyNameNo ON Customer (CompanyName, No)

查看http://www.sqlite.org/lang_createindex.html 了解有关索引的信息。

【讨论】:

以上是关于使用哪种方法在 SQLite 中搜索大量记录 QueryAsync 或 Query的主要内容,如果未能解决你的问题,请参考以下文章

SQLITE3插入大量数据,效率翻百倍

哪种搜索技术/方法最快? (在文件搜索的上下文中)

在 iphone 上实现增量搜索

使用 python 在 sqlite3 数据库中存储大量 API 数据的最有效方法

Django无法使用 sqlite 数据库报错:com.intellij.execution.ExecutionException: Exception in thread "main&qu

Sqlite3插入大量数据性能优化