【发布时间】:2023-03-29 06:40:02
【问题描述】:
我有一个带有两个表的简单 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 时,我会看到内存错误。
这是 Linux 系统,在 32 位内核上,文件大小 >2GB 似乎在创建索引时会导致内存错误。在 64 位内核上,限制为 > 3.5GB。
在“top”程序中,我看到在 64 位系统上,VM 和 RSS 的使用量在它死之前上升到 3.5GB。
有人看过吗?有关如何解决此问题的任何建议。是否有人对具有多 GB 文件大小 + 索引创建的 sqlite 感到幸运?
【问题讨论】:
-
您是在 Python 中嵌入的 SQLite 版本中创建索引,还是使用
sqlite3命令行工具创建索引?这是哪个 SQLite 版本?你能用the latest version试试吗? -
CL,我使用 3.7.14.1 2012-10-4 版本的 sqlite 代码。 sqlite 模块嵌入在 python 中。 SQL 命令是通过 Python 输入的。在输入所有数据后发出“创建索引”命令之前,内存使用情况很好。我会尝试最新版本。您是否尝试过创建具有多 GB 大小文件/数百万/亿行的索引?你有内存问题吗?