簡體   English   中英

(Android)如何真正快速地將大量Integer保存到SQLite數據庫?

[英](Android) How to save a large amount of Integers into SQLite database really fast?

我是SQLite的新手。 我有一個int數組: int[][] data = new int[32768][256] 因此,我決定使用SQLite數據庫存儲data內容。 我想創建一個名為“ data_content”的表,並將數據放入單元格a b cc = data[a][b]

但我想(如果可能)在不到1分鍾的時間內保存(在/ sdcard /中)大量值( 8 388 608 )。 我該怎么做? 我將非常感謝任何代碼。

我對我的英語感到非常抱歉,有時我使用過Google翻譯。

如果您真的想使用SQLite,只需避免將每個元組作為單獨的語句插入。 我建議您使用UNION SELECT構造來大批量抽取數據。

就像是:

INSERT INTO 'data_content'
    SELECT 'data1_1' AS 'a', 'data1_2' AS 'b', 'data1_3' AS 'c'
UNION SELECT 'data2_1', 'data2_2', 'data2_3'
UNION SELECT 'data3_1', 'data3_2', 'data3_3'
UNION SELECT .....

即使說實話,性能還是很快的(這就是TBH的實際含義),我將使用一個具有256 + 1列且帶有“類似於Excel的名稱”和32768行的表。 這樣,您可以使用較少的語句插入所有內容,並且由於可以在第一列上創建索引(可以用作“行號”),因此在回讀值的同時也將受益。

在寫入時使用文本文件和zip壓縮可能很快,但是在讀取時卻不切實際,因為文本文件始終順序為紅色。

為了快速保存,最好只使用一個平面文件將數據存儲在其中,然后將其壓縮然后保存。 到SD卡的IO速率將是您的主要限制,因此壓縮將為您節省很多。

TBH您可能最好向您解釋為什么要這樣做,因為這樣您將針對您的實際問題得到更有針對性的答案...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM