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

标签 sqlite

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

当我不断插入数据库行时,我看到数据库使用的内存(通过 sqlite3_memory_used() 获得)上升直到达到 200KB,然后保持不变,即使连续插入行也是如此。

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

最佳答案

我深入研究了 SQLite 代码以了解这是如何完成的。在 Unix 平台上,SQLite 将尝试在以下任一方式中创建一个临时文件:

  1. SQLite全局变量指向的位置:sqlite3_temp_directory
  2. 环境变量“TEMP”、“TMP”或“TMPDIR”中的任何一个依次指向的目录。

关于sqlite - SQLite 3中临时数据库的数据存储空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8449169/

相关文章:

python - 如何将 SQLite3 数据库导入 Python Jupyter Notebook?

java - 无法将 db 的区域设置更改为 'en_US'

触发器内的 Sqlite CTE-insert 给出语法错误

java - 保存一些数据 sqlite、SharedPreferences 或文件?

database - Sqlite 确保输入数据的长度正确

ios - SQLite查询区域内的位置字段

android - 为什么 SQLite 上的这个插入命令没有任何作用?

python - sqlite中的变量表名

string - 如何在sqlite中用填充连接字符串

java - 创建序列时出现 SQL 错误