搜索sqlite数据库的最佳方法

时间:2009-07-24 06:14:14

标签: android sqlite

在我的应用程序中,我使用的是一个大型数据库。表中有近75000条记录(共有6个表)。我想一次从三个不同的表中获取数据。我完成了。但搜索过程很慢。我可以优化搜索过程吗?

2 个答案:

答案 0 :(得分:1)

您可能需要考虑使用全文搜索引擎并发出SELECT ... MATCH查询。请注意,您需要启用FTS引擎(默认情况下已禁用)并创建虚拟表而不是常规表。您可以阅读更多相关信息here

答案 1 :(得分:0)

我无法看到表结构(或查询),我建议的第一件事就是在表中添加一些索引。

假设你有几张表:

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';

您希望last_name表中的Author列有一个索引(也可能是first_name)。