搜索 sqlite 数据库的最佳方法
Posted
技术标签:
【中文标题】搜索 sqlite 数据库的最佳方法【英文标题】:Best way to search sqlite database 【发布时间】:2010-11-13 15:24:56 【问题描述】:在我的应用程序中,我使用的是一个大型数据库。一个表中有近 75000 条记录(总共有 6 个表)。我想一次从三个不同的表中获取数据。我完成了。但是搜索过程很慢。如何优化搜索过程?
【问题讨论】:
如果您发布查询,有人可能会尝试对其进行优化。首先尝试在某些列上创建索引。 我不认为在手机上存储这么多记录是个好主意。我建议(我也在为我正在编写的应用程序这样做)将记录保存在服务器上的某个地方,并通过 SOAP / JSON / 其他方式通过互联网查询它。 【参考方案1】:您可能需要考虑使用全文搜索引擎并改为发出 SELECT...MATCH 查询。请注意,您需要启用 FTS 引擎(默认情况下禁用)并创建虚拟表而不是常规表。你可以阅读更多关于它的信息here。
【讨论】:
【参考方案2】:如果无法查看表结构(或查询),我建议的第一件事是向表中添加一些索引。
假设您有一些表格,例如:
Author
id
last_name
first_name
Subject
id
name
Book
id
title
author_id
subject_id
并且您想要获取last_name="Smith"
和first_name="John"
的作者所写的每本书的所有信息。您的查询可能如下所示:
SELECT * FROM Book b
LEFT JOIN Subject s
ON s.id=b.subject_id
LEFT JOIN Author a
ON a.id=b.author_id
WHERE a.last_name='Smith'
AND a.first_name='John';
您希望Author
表中的last_name
列有一个索引(可能还有first_name
)。
【讨论】:
以上是关于搜索 sqlite 数据库的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章
将 Django DB 从 SQLite 迁移到 MySQL 的最佳方法是啥?
使用 Javascript 直接在浏览器中读取 Sqlite3 的最佳方法是啥?