0

在所有优化指南中,人们都在谈论诸如 JOURNAL_MODE 或 SYNCHRONOUS 之类的编译指示,但我从未读过有关 TEMP_STORE 编译指示的任何内容?我预计它会产生很大的影响,那么为什么从未提及呢?

它的目的是将所有 SQLite 的内部临时表从磁盘(临时目录)移动到内存中,这似乎比每次 SELECT 都访问磁盘要快得多?

4

1 回答 1

0

SQLite 在进行写入时会锁定整个数据库,因此我认为最好在继续执行下一个任务之前将数据放到盘片上。

将数据放在内存中很可能是为那些只需要临时数据存储的情况而保留的(正如 TEMP_STORE 名称所暗示的那样);您仍然需要提供一种定期将数据刷新到磁盘的方法(如果要保存它),并且由于锁定不是粒度的,因此您必须刷新整个数据库。

换句话说,TEMP_STORE 不是缓存机制。

于 2011-09-26T15:26:58.200 回答