数据库操作时的临时文件
在进行数据库查找、插入操作时,经常会出现一些临时文件,那么这些临时文件在内存中还是在磁盘中呢?
比如下面例子中第三步,使用临时的B树进行排序,这个临时的B树在内存还是磁盘中呢?

根据sqlite的文档,这个值是通过编译参数SQLITE_TEMP_STORE
和运行时参数temp_store
指定的。
编译参数SQLITE_TEMP_STORE
默认是1,运行时参数temp_store
默认是0,因此最终这些临时文件存储在磁盘中。

对于iOS系统自带的sqlite数据库来说,编译参数是不能改变的。可以改变temp_store
为2,指定临时文件存在内存中。这样可以带来性能上的优势,毕竟操作内存要比操作磁盘快。

下起雨,也要勇敢前行