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

时间:2011-12-09 17:13:35

标签: sqlite

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

当我继续插入数据库行时,我看到数据库使用的内存(由sqlite3_memory_used()获取)一直上升到200KB,然后保持不变,即使继续插入行也是如此。

在达到分配的限制后,插入的额外行空间在哪里?它是在磁盘上创建的临时文件吗?我想知道位置,以便我可以控制/配置可能由此类分配引起的任何空间问题。

1 个答案:

答案 0 :(得分:4)

我挖掘了SQLite代码,看看是如何完成的。在Unix平台上,SQLite将尝试在以下任一位置创建临时文件:

  1. SQLite全局变量指向的位置:sqlite3_temp_directory
  2. 任何环境变量'TEMP','TMP'或'TMPDIR'按顺序指向的目录。