我创建了一个SQLite数据库作为临时数据库(通过在sqlite3_open()中指定一个空文件名)。我还使用'sqlite3_soft_heap_limit64()指定了数据库可以使用的内存量限制为大约200KB。
当我继续插入数据库行时,我看到数据库使用的内存(由sqlite3_memory_used()获取)一直上升到200KB,然后保持不变,即使继续插入行也是如此。
在达到分配的限制后,插入的额外行空间在哪里?它是在磁盘上创建的临时文件吗?我想知道位置,以便我可以控制/配置可能由此类分配引起的任何空间问题。
答案 0 :(得分:4)
我挖掘了SQLite代码,看看是如何完成的。在Unix平台上,SQLite将尝试在以下任一位置创建临时文件: