从SQLite上传文本数据到服务器是更快还是文本文件?

时间:2015-05-11 07:25:38

标签: android sqlite

我的应用程序每毫秒收到大量数据(来自模拟器设备的信号的名称,ID,值,...)。我应该将这些数据上传到MySQL服务器。首先,我需要将它们保存在数据库中,然后通过GSM网络将它们上传到服务器。我将数据保存到移动设备的原因是连接速度太慢,应用程序一次收到大量数据,无法立即上传,也可能遇到断线问题。实际上,我只需要一个临时存储空间,我不想在SQLite中进行任何数据操作。目前我正在将数据写入简单文本文件(CSV),然后使用Android HttpPost中的名称/值对每20行上传到服务器,但SQLite呢?将数据插入SQLite然后上传它会更快吗?哪种方法更可取?

以下是我从模拟器设备收到的示例数据:

时间,ID,名称,值

143125738714,ID1,name1,8.000004

143125738715,ID2,name2,0.0

2 个答案:

答案 0 :(得分:1)

最优选使用SQLite DB保存数据然后发送到服务器。 当您使用文件处理时,

  1. 您必须将所有文件读取到缓冲区,然后再次获得20行 来自缓冲区(非常重要)(也意味着很多工作),
  2. 将一些行(数据)发送到服务器后,您需要跟踪 发送的行(数据)或您需要从中删除这些行(数据) 你的文件(再次开展大量工作)。
  3. 通过使用SQLite,可以轻松读取记录(行)和删除记录(行)。

    另外,为了向服务器发送数据,逐行发送数据(而不是发送一堆行),这样就可以保持发送数据(行)的记录,以防网络断开。

    更新:

    如果你想通过提取id,名称等来发送数据,还要删除已发送的行,那么使用SQLite(因为在SQLite中提取数据和删除是有效的)

    如果您只想发送没有任何数据提取的行,也不想删除已发送的行,那么只需使用.txt文件。

答案 1 :(得分:0)

我更喜欢使用简单的文本文件。但是,如果文本文件累积了大量的行而没有删除,则可能需要大量的搜索时间才能达到最新的20行。在这种情况下,最好保留文件指针而不关闭文件,或者使用序列化文件名控制文件大小。