如果db大小超过sqlite中的内存怎么办?

时间:2016-09-25 13:48:37

标签: database sqlite memory-management

我正在处理繁重的数据集,我选择以纯二进制格式存储并以块的形式加载到内存中。然而,即使是最小的块也将超过我的计算机内存(16GB),因此我必须将它们进一步分解或找到另一种解决方案。整个数据集大约是半TB。

我在wiki上看到sqlite可以使用高达32TB的数据,这很酷。但是,我无法弄清楚你是否需要32TB的内存来使用它,或者你可以拥有更小的内存并将其存储在硬盘上。我的理解是它应该是可能的,我需要非常简单的操作,如添加行,读取行,选择具有给定值的所有行e.t.c

如果你们有人帮助我,我将不胜感激,因为我不愿意投资研究sqlite,只是为了了解它并不像我想象的那样工作。如果您有任何您认为可能有帮助的见解,请分享。

1 个答案:

答案 0 :(得分:0)

大多数数据库(包括SQLite)都可以处理数据块中的数据,即,它们需要一次只将一条记录加载到内存中。 (但是使用更多内存进行缓存会使事情变得更快。)此外,如果中间数据变得太大,可以将其移动到temporary files。这是默认行为,因此未明确公布。

将整个数据库放在内存is possible中,但仅对无法保存的临时数据有意义。