2015-05-11 51 views
0

我的應用程序每毫秒接收大量數據(名稱,ID,值,來自模擬器設備的信號)。我應該將這些數據上傳到MySQL服務器。首先,我需要將它們保存在數據庫中,並通過GSM網絡將它們上傳到服務器。我將數據保存到移動設備的原因是連接速度很慢,應用程序一次接收的數據量非常大,無法立即上傳,也可能會遇到斷開連接問題。事實上,我只需要一個臨時存儲,我不想在SQLite中進行任何數據操作。目前我正在將數據寫入簡單文本文件(CSV),然後使用Android HttpPost中的名稱/值對將每20行上傳到服務器,但SQLite呢?將數據插入到SQLite然後上傳它會更快嗎?哪種方法更可取?從SQLite上傳文本數據到服務器更快或文本文件?

這裏是我從模擬器設備接收的採樣數據:

時間,ID,名稱,值

143125738714,ID1,name1,8.000004

143125738715,ID2,name2,0.0

回答

1

最優選使用SQLite數據庫來保存數據,然後發送到服務器。 當您使用的文件處理,然後,

  1. 一定要仔細閱讀所有文件複製到緩衝區,然後再得到20行從,這是非常沉重的(意味着大量的工作),還可以在緩衝 ,發送
  2. 後一些線(數據)到服務器,你需要保持發線(數據)的軌道 或者您需要從 刪除這些線(數據)文件(再次大量的工作)。

通過使用SQLite,很容易讀取記錄(行)和刪除記錄(行)。

另外,爲了將數據發送到服務器,由線發送數據線(而不是發送一堆線),這樣可以保持發送的數據(行)的記錄在網絡斷開其間的情況。

UPDATE:

如果你想通過提取ID,姓名等發送數據,並刪除發送線,然後,使用SQLite(因爲數據和刪除的提取是SQLite的效率)

如果您只想發送沒有任何數據提取的行,也不想刪除發送的行,則只需使用.txt文件。

+0

感謝您的回答。其實,對我來說,速度很重要。事實上,我從文件中讀取了20行,並將它們插入名稱值對的列表中,並將它們上載到服務器。然後我讀下20行,不需要刪除以前的行!如果你只是想考慮上傳速度,哪一個更快?從csv文件讀取或從SQLite讀取? – sara

0

我喜歡用簡單的文本文件。但是,如果文本文件在不刪除的情況下累積了大量的行,則可能需要很長的搜索時間才能達到最新的20行。在這種情況下,最好保留文件指針而不關閉文件,或者使用序列化文件名控制文件大小。

相關問題