我有一个带有两个表的简单 sqlite 数据库。
Table 1:
Col1: int index;
Col2: text;
Col3: int;
Table 2:
Col1: int;
Col2: int;
Col3: int;
第一个表高达数百万行。表 2 可以有数亿行。表 1,在输入所有数据后对 Col2 进行索引。还为表 2 col1、col2 创建索引。
当数据库文件很小 - < 3.5GB 时,索引创建工作正常。当数据库文件系统 > 3.5GB 时,我会看到内存错误。
这是 Linux 系统,在 32 位内核上,文件大小 >2GB 似乎在创建索引时会导致内存错误。在 64 位内核上,限制为 > 3.5GB。
从“顶级”程序中,我看到 64 位系统上的 VM 和 RSS 使用量在它死之前上升到 3.5GB。
有人见过这个吗?有关如何解决此问题的任何建议。有人对具有多 GB 文件大小 + 索引创建的 sqlite 感到幸运吗?