6

即使是事务,我也遇到了 sqlite 插入性能的问题。我的 android 应用程序从 Web 服务接收大约 23.000 行,我必须将它们插入到单个表中。

Web 服务是分区的,因此我在对 WS 的每个请求中收到大约 2000 行,并且我将 2000 个插入包装在一个事务中。在这些插入完成后,我将新请求发送到 WS 并再次为新的 2000 行使用新事务。

一开始它工作正常。它每秒执行很多插入操作。但随着时间的推移,它变得越来越慢,最终以每秒 4 或 3 次插入结束,直到完成 23000 行。

桌子大小有问题吗?当它变大时,插入变慢?有什么方法可以提高大量数据的性能吗?

谢谢你的帮助。

4

2 回答 2

1

如何提高 SQLite 的性能?这很好。如果您还没有使用它们,我至少会选择准备好的语句。

但是,由于您使用的是 Android,我猜您可能会遇到一些写入闪存的 I/O 瓶颈。尝试在不同制造商的几个不同设备上运行代码,看看是否有任何极端变化。

于 2012-07-29T19:36:20.477 回答
0

您应该使用数据分区。因为您可以插入 100 - 100 个插入,因此过程将很顺利,不会发生数据丢失问题。

我假设您正在使用异步(可以是其他)线程的另一件事。

或者您也可以在最后一种情况下使用服务来一次使用所有数据。

于 2013-10-26T05:14:39.587 回答