首页 > 代码库 > 数据库操作时的临时文件

数据库操作时的临时文件

在进行数据库查找、插入操作时,经常会出现一些临时文件,那么这些临时文件在内存中还是在磁盘中呢?
比如下面例子中第三步,使用临时的B树进行排序,这个临时的B树在内存还是磁盘中呢?
技术分享?
根据sqlite的文档,这个值是通过编译参数SQLITE_TEMP_STORE和运行时参数temp_store指定的。
编译参数SQLITE_TEMP_STORE默认是1,运行时参数temp_store默认是0,因此最终这些临时文件存储在磁盘中。
技术分享?
对于iOS系统自带的sqlite数据库来说,编译参数是不能改变的。可以改变temp_store为2,指定临时文件存在内存中。这样可以带来性能上的优势,毕竟操作内存要比操作磁盘快。
技术分享?

数据库操作时的临时文件