2009-07-24 27 views
0

在我的應用程序中,我正在使用一個大型數據庫。近75000條記錄出現在一個表中(總共有6個表)。我想每次從三個不同的表中獲取數據。完成了,但搜索過程很慢。我可以優化搜索過程嗎?搜索sqlite數據庫的最佳方式

+0

我不認爲這是一個好主意,在手機上存儲這麼多的記錄。我會推薦(我正在爲我正在編寫的應用程序執行此操作)將記錄保存在某個服務器上,並通過SOAP/JSON /無論在Internet上查詢它。 – Nippysaurus 2009-07-24 06:19:33

回答

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

有你想要的Author表中的列last_name有一個索引(也許first_name太)。

1

您可能想要考慮使用全文搜索引擎並改爲發出SELECT ... MATCH查詢。請注意,您需要啓用FTS引擎(默認情況下禁用它)並創建虛擬表而不是常規表。你可以閱讀更多關於它here

相關問題