Python内存数据库溢出

时间:2016-09-11 22:31:44

标签: python database memory sqlite

我无法在网上找到答案,所以在这里。我正在开发一个SAAS,它为每个用户在云上创建一个临时的内存中SQLITE3数据库。数据库将不会被存储,因此它们在内存中:

import sqlite3
conn = sqlite3.connect(':memory:')

我的问题是关于可扩展性。最糟糕的情况是,成千上万的用户同时创建了GB大小的数据库。 SQLITE3耗尽内存时的默认行为是什么?它会将其他数据库写入磁盘吗?它会崩溃吗?

我意识到这也是SAAS SERVER配置方式的一个功能,但我的问题只在于内存问题。

1 个答案:

答案 0 :(得分:2)

documentation page读取:

  

临时和内存数据库之间的唯一区别是":内存:"数据库必须始终保留在内存中,而如果数据库变大或SQLite受到内存压力,临时数据库的某些部分可能会刷新到磁盘。

这意味着如果SQLite内存不足,那么您可能会遇到操作系统的错误代码。

即使ram被消耗,操作系统也可以将数据库交换到磁盘。

如果你担心的话,我建议使用临时数据库,而不是像在同一文档页面上所描述的那样,所以如果你用完ram,SQLite就可以将它们刷新到磁盘。 / p>