2011-12-13 120 views
1

我正在編寫一個包含字典的不同部分的Android應用程序。爲了實現字典,我使用了以下技術:從Android中的Sqlite數據庫加載大量的數據

  1. 讀取Sqlite數據庫中的所有單詞並將它們存儲在數組列表中。 (「從詞彙中選擇*」)。

  2. 使用數組列表上的簡單二進制搜索來搜索定義。

從數據庫中提取單詞需要很長時間(大約50000個單詞),有時會導致「內存不足」異常。然而,在加載數據後,它可以非常迅速地找到單詞的定義。 請你指導我如何實現字典?

回答

4

數據庫通常用於快速內存訪問(磁盤訪問)。把你的整個數據庫放到內存中並沒有什麼意義。使用sql僅訪問特定任務所需的信息。在性能查詢鍵上創建索引

+1

+1,實際上我驚訝於Android上使用SQLite進行快速查詢,甚至是複雜的查詢。我現在使用數據庫作爲我的大多數應用程序的主存儲器(當我需要信息時從中讀取數據,只要用戶輸入一些內容就可以保存數據) – Guillaume

+1

作爲旁註,這是真實的因爲數據庫是本地的 - 當數據庫服務器和應用程序服務器之間存在網絡時,將數據「緩存」在內存中是有意義的。很顯然,Android並非如此。 – Guillaume

+0

其實我想給用戶實時定義。另一方面,有editText有TextWatcher。 editText文本發生更改時,我必須從數據庫獲取數據。你仍然認爲使用數據庫或使用數組列表是個好主意嗎?請幫幫我。 –

相關問題