【问题标题】:Best way to search sqlite database搜索 sqlite 数据库的最佳方法
【发布时间】:2010-11-13 15:24:56
【问题描述】:

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

【问题讨论】:

  • 如果您发布查询,有人可能会尝试对其进行优化。首先尝试在某些列上创建索引。
  • 我不认为在手机上存储这么多记录是个好主意。我建议(我也在为我正在编写的应用程序这样做)将记录保存在服务器上的某个地方,并通过 SOAP / JSON / 其他方式通过互联网查询它。

标签: android sqlite


【解决方案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)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-27
      • 2011-09-18
      • 1970-01-01
      • 2020-06-29
      • 2010-09-14
      • 1970-01-01
      相关资源
      最近更新 更多