我的应用程序每毫秒收到大量数据(来自模拟器设备的信号的名称,ID,值,...)。我应该将这些数据上传到MySQL服务器。首先,我需要将它们保存在数据库中,然后通过GSM网络将它们上传到服务器。我将数据保存到移动设备的原因是连接速度太慢,应用程序一次收到大量数据,无法立即上传,也可能遇到断线问题。实际上,我只需要一个临时存储空间,我不想在SQLite中进行任何数据操作。目前我正在将数据写入简单文本文件(CSV),然后使用Android HttpPost中的名称/值对每20行上传到服务器,但SQLite呢?将数据插入SQLite然后上传它会更快吗?哪种方法更可取?
以下是我从模拟器设备收到的示例数据:
时间,ID,名称,值
143125738714,ID1,name1,8.000004
143125738715,ID2,name2,0.0
答案 0 :(得分:1)
最优选使用SQLite DB保存数据然后发送到服务器。 当您使用文件处理时,
通过使用SQLite,可以轻松读取记录(行)和删除记录(行)。
另外,为了向服务器发送数据,逐行发送数据(而不是发送一堆行),这样就可以保持发送数据(行)的记录,以防网络断开。
更新:
如果你想通过提取id,名称等来发送数据,还要删除已发送的行,那么使用SQLite(因为在SQLite中提取数据和删除是有效的)
如果您只想发送没有任何数据提取的行,也不想删除已发送的行,那么只需使用.txt文件。
答案 1 :(得分:0)
我更喜欢使用简单的文本文件。但是,如果文本文件累积了大量的行而没有删除,则可能需要大量的搜索时间才能达到最新的20行。在这种情况下,最好保留文件指针而不关闭文件,或者使用序列化文件名控制文件大小。