Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite-删除临时表不需要';t释放分配内存_Sqlite_Temp Tables - Fatal编程技术网

SQLite-删除临时表不需要';t释放分配内存

SQLite-删除临时表不需要';t释放分配内存,sqlite,temp-tables,Sqlite,Temp Tables,我使用的是PRAGMA temp_store=2,所以所有的临时表都是在内存中创建的。我有一个有100000000条记录的临时表。我的测试应用程序使用的内存增长到约80MB。如果我从这个表或drop表中删除所有记录,那么我的应用程序仍然使用80MB的内存。为什么sqlite不能释放内存 关于表以前使用的内存仍然是数据库的一部分,以后插入到该数据库中的任何数据都将重新使用该内存 要完全释放内存,您必须关闭数据库连接(如果您想存储更多临时数据,请打开一个新的连接) 如果您希望数据库稍后重用数据,那么

我使用的是
PRAGMA temp_store=2
,所以所有的临时表都是在内存中创建的。我有一个有100000000条记录的临时表。我的测试应用程序使用的内存增长到约80MB。如果我从这个表或drop表中删除所有记录,那么我的应用程序仍然使用80MB的内存。为什么sqlite不能释放内存


关于

表以前使用的内存仍然是数据库的一部分,以后插入到该数据库中的任何数据都将重新使用该内存

要完全释放内存,您必须关闭数据库连接(如果您想存储更多临时数据,请打开一个新的连接)

如果您希望数据库稍后重用数据,那么在此期间释放数据将是无用的开销,除非您的机器内存极度不足