我正在用包含大字符串值的字典加载很多对象。总体而言,该程序超过 2GB 并崩溃。它并没有超过太多,但我以后可能会有更大的数据。
看来 Python 32 位无法访问更多内存。我想 future 我需要一些能够处理大数据并且仍然不会太慢的对象数据库系统(即存储在数据库或硬盘中,但为了速度而在内存中保留一些)。为了性能,我不想只将数据保留在 MySQL 中,而是希望有一些透明的机制尽可能多地保留在内存中。
你能想出一个好的方法来处理对象中的这么多数据吗?
最佳答案
根据你的数据结构有多复杂,看看这些:
memcached
键值存储,该死的快('O(1) 一切'),扩展到许多机器,用于缓存(不是持久的)。有持久化和加载数据的解决方案,甚至 memcachedb .
mongoDB
JSON 存储,可以有主键以外的索引,可扩展到多台机器,具有自动分片和自动故障转移,持久。支持非常快速的插入、原子操作、一种用于复杂查询的内置 map-reduce。
redis
键值存储,值可以结构化。有许多高级操作、原子操作、发布/订阅、主从复制。完全在 RAM 中运行,但具有有限的持久性机制。
考虑重新制定问题的标题,例如“选择什么内存数据库”这样的内容会提供更多信息。
关于python - Python中的内存错误解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9888977/