SQLite 3中临时数据库的数据存储空间

SQLite 3中临时数据库的数据存储空间,sqlite,Sqlite,我创建了一个SQLite数据库作为临时数据库(通过在sqlite3_open()中指定一个空文件名)。我还通过使用'sqlite3\u soft\u heap\u limit64(),将数据库可使用的内存量限制为大约200KB 当我不断插入数据库行时,我看到数据库使用的内存(由sqlite3_memory_used()获得)一直增加到200KB,然后,即使继续插入行,也保持不变 达到从中分配的限制后,插入的额外行空间在哪里?它是在磁盘上创建的临时文件吗?我想知道位置,这样我就可以控制/配置这种分

我创建了一个SQLite数据库作为临时数据库(通过在sqlite3_open()中指定一个空文件名)。我还通过使用'sqlite3\u soft\u heap\u limit64(),将数据库可使用的内存量限制为大约200KB

当我不断插入数据库行时,我看到数据库使用的内存(由sqlite3_memory_used()获得)一直增加到200KB,然后,即使继续插入行,也保持不变


达到从中分配的限制后,插入的额外行空间在哪里?它是在磁盘上创建的临时文件吗?我想知道位置,这样我就可以控制/配置这种分配可能导致的任何空间问题。

我深入研究了SQLite代码,以了解如何做到这一点。在Unix平台上,SQLite将尝试在以下任一位置创建临时文件:

  • SQLite全局变量指向的位置:sqlite3_temp_目录
  • 任何环境变量“TEMP”、“TMP”或“TMPDIR”按该顺序指向的目录