将大型列表高效序列化到数据库中?

时间:2012-06-11 02:25:52

标签: python mongodb serialization sqlite memcached

我想要将大约2900万个单独的unicode元素序列化到数据库中。我当前的解决方案使用SQLite,并逐步发送长度为100,000的列表:

cursor.executemany("insert into array values (?)", [list of length 100,000])

我认为这样做足够有效,但是在睡觉和醒来之后(比如说6个小时),看到它还没有完成,我想不然。

MongoDB或memcached解决方案会更有效吗?

(随意提出更有效的方法)

2 个答案:

答案 0 :(得分:0)

如果您决定选择memcached,请注意下面提到的注释。

Memcached has a default setting of maximum data size that can be set as 1Mb. 
Any data size greater then that would require you to start the memcached explicitly stating the maximum size.

我真的很喜欢使用redis来存储数据结构。因为您的要求不是那么清楚。我建议你使用redis,因为你可以以多种方式存储它并有趣地使用它。

请阅读可以存储在redis上的不同数据结构的文档。

http://redis.io/documentation

答案 1 :(得分:-1)

尝试生成gevent个线程,例如10个并监控在给定时间内处理的记录数,并尝试增加该数量。您还应该查看multiprocessing