2013-08-27 111 views
2

我是Android開發新手。Android應用程序中的最大SQLite數據庫大小

目前,我正在研究一個具有大量數據的Android應用程序。

所以我認爲我應該在本地存儲一些數據。

我有一個數據庫有2個表。

表-1的大小爲:4.5 MB 表-2的大小爲:3.5 MB當前。

即完全在8.0MB左右,但未來數據庫大小可以增加,可能達到10MB。

表1:行(14927)和列(17) 表-2:行(9903)和列(38)

我的疑問是,我可以在一個機器人應用在本地存儲這麼多數據或者應用程序的速度可能會受其影響。

我不想將這些數據存儲在外部存儲器中。而且我不能將它存儲在服務器數據庫中,因爲我必須在應用程序中多次使用這些數據。而其他數據在服務器上,因爲它必須集中使用。

這是我的觀點。但請給我你的建議。

如果存在這樣大小的數據庫該怎麼辦。

請幫幫我。在此先感謝... :)

回答

0

您可以將這麼多數據存儲在sqlite中。這可能會影響您的表上的查詢搜索而不是您的應用程序,並且您應該始終在單獨的線程而不是主線程上與數據庫進行交互。 但是,您應該考慮從表中刪除用戶不再需要的表中的行,這可能會從數據庫釋放一些負載。

1

我不想將這些數據存儲在外部存儲器中。而我不能 將它存儲在服務器數據庫上,因爲我必須在 應用程序中多次使用這些數據。

所以,如果你不想使用外部存儲,你唯一的辦法就是使用內部存儲器(你也不想使用遠程服務器)。通常當數據庫的大小較大時,通常會使用外部存儲來優化應用程序。但它也取決於數據e.q的特徵。如果他們敏感或不那麼外部存儲並不總是贏。

但在你的情況下,我不認爲你的應用程序性能會下降。只有對數據庫的查詢才能持續超過10-100行的查詢(可以通過創建適當的索引來優化查詢)。

但對於提高性能的幾個建議:

  • 嘗試刪除記錄未用於較長時間
  • 您可以壓縮數據,這將導致更小的分貝大小
1

你可以存儲這麼多的數據沒有問題,我正在處理數據庫。它的大小約爲35MB。 您應該使用緩存來加速獲取數據。

我不喜歡內部存儲,它很小。

+1

請您詳細介紹一下緩存nindexing? –

3

最大數據庫大小可以是大約1.4e + 14個字節(140兆兆字節或140,000千兆字節)。

參考:The Official SQLite Documentation and limits

14最大數據庫大小

每個數據庫都包含一個或多個 「頁」。在單個數據庫中,每個頁面的大小相同,但不同的數據庫的頁面大小可以在512到65536之間,包含兩個冪。數據庫文件的最大大小是2147483646頁。在最大頁面大小爲65536字節時,這會轉化爲大約1.4e + 14字節(140兆兆字節或128兆字節,或140,000千兆字節或128,000千兆字節)的最大數據庫大小。

+0

請注意,這是一個理論上的限制。在可預見的未來,Android機器不太可能支持這些數字。通過提供有關現實生活中使用情況的建議,更好的答案將擴展到這一點。 –

相關問題