我在移动应用程序中使用SQLite来使用低功耗蓝牙从传感器收集数据。传感器每秒发送一次值。我使用的方法是这样的:接收到新数据后,我将其读取并将其插入数据库中的表中。问题是:我注意到插入1500时应用程序崩溃。我的问题是:
就性能而言,是每秒插入一个值(我今天使用的方法)还是在数组变量中收集60个值然后将它们插入一个事务中更好?
还有其他方法可以优化SQLite的性能吗?我需要使应用程序整天运行。那就是要存储的86400个值
答案 0 :(得分:1)
从此答案中摘录:
Which is faster: multiple single INSERTs or one multiple-row INSERT?
插入行所需的时间由以下因素决定,其中数字表示近似比例:
- 连接:(3)
- 将查询发送到服务器:(2)
- 解析查询:(2)
- 插入行:(1×行大小)
- 插入索引:(1×索引数)
- 关闭:(1)
总而言之,每分钟发送一次查询60个条目的查询要比每秒发送一次查询快许多倍。