2016-03-24 90 views
1

我有一個數據庫包含2 500 000行的13位數字(並在多一點 - 4 000 000) 用戶必須找到一個13位數字是否存在此數據庫中,這一切都在他的Android手機,沒有任何互聯網連接。那麼你有什麼建議來解決這個問題?如何在Android中處理非常大量的數據?

我想過在Android上使用SQLITE。

你有什麼建議?

+1

乍一看,數據庫是您的最佳選擇。它會很小(ish)並且足夠快地執行查詢。顯然沒有互聯網連接意味着你不能更新這個數據庫(除非你打算在有連接時同步)。如果這些數字符合某種模式,也可以在沒有數據庫的情況下確定。即,數字通過Luhn測試,或者在某些範圍之間,等等。 – Kevin

+0

當我說「沒有連接」時,我想說我不能執行我的搜索服務器端,但是,每週都會添加2000數據庫中的引用。 這是一個「EAN13」數據庫中,所以沒有任何數字模式。 – d3cima

+0

我想你只需要一個非常大的手機 – lelloman

回答

1

這在評論中添加的太多了,所以我會在這裏添加它。

4,000,000行整數並不多。假設整數將使用符號int(8個字節)的最大大小,數據庫將是:

4000000 * 8 /一千○二十四分之一千○二十四=〜30.5mb

即大,但不破壞遊戲。

現在,也假定您將需要每個數字完整的8個字節。我們知道,我們要存儲每個條目13位數字,所以一個6字節的整數列就足夠了:

4000000 *1024分之6/ 1024 =〜23MB

+0

請注意,我刪除了有關章節'TEXT'列。我忽略了爲每個字符乘以4個字節13。 – Kevin

1

SQLite將成爲設備上大型數據集的最佳存儲選項。確保在可能的情況下使用正確的SQLite查詢來獲取所需的數據,而不是使用常規查詢並在自己的代碼中進行處理。

0

嗨d3cima可能爲時已晚的答案,但它是幫助其他的。我自己的境界是最好的選擇。

Realm

領域的開發者友好的平臺,可以很容易地建立反應的應用程序,實時協作功能和離線的第一個經驗。

優勢的:

  • 速度比SQLite的(高達10倍加速通過原始SQLite的正常 操作)

  • 易於使用的處理

  • 對象轉換你

  • 方便創建和存儲數據

我用我的項目是超過10 x然後Sqlite。