Python:只有一个磁盘操作的Sqlite多个插入

时间:2016-05-03 02:23:34

标签: python sqlite python-shove

我在部署到docker实例时遇到了一些disk problems,但我还不知道如何解决它。

在docker实例中,有一个进程使用Shove和sqlite作为后端,将数据作为字典保存到磁盘(我节省了大约200,000条记录)。

出现问题是因为我使用Shove作为要保存的字典,这使得每个__setitem__操作都成为sqlite中的插入。

现在Shove提供了一个sync(一个整数)参数来指定何时将实际存储执行到磁盘中,但这只会在内存中保存一个临时字典,并且到时候它仍然会使{ {1}}操作到磁盘(我不想要)。

我检查过sqlite提供了executemany操作,它应该减少方法调用开销,但它是否真的对磁盘执行了1次(或至少接近1次)操作?我似乎无法为此找到明确的解释。

我还检查过bulk operation could be done on sqlite,但是没有在python上解释,所以我应该用sync调用它并创建一个非常大的字符串? (我希望能够一次至少保存1000条记录。)

那么用最少量的操作写入磁盘的最佳方法是什么?

0 个答案:

没有答案