我需要一个非常快速的SQLite数据库访问。通过以下方式设置参数:
PRAGMA synchronize = OFF
PRAGMA jorunal_mode = MEMORY
这些设置使得SQLite将与数据库文件的同步交由操作系统处理,从而使速度足以满足我的项目需求。
但是,在某些情况下,例如在特定插入之后,我必须确保数据已写入磁盘。
有没有办法强制SQLite将所有等待在内存日志中的数据都写入磁盘?
谢谢。
WAL
journal_mode
。这样,您可以将synchronous
保留为normal
,并在写入时将所有内容写入磁盘:http://www.sqlite.org/wal.html
如果这还不够,当你想确保你的写入不仅被写入磁盘,而且被“整合”到你的数据库中时,你仍然可以调用PRAGMA database.wal_checkpoint;
。请参阅以下内容获取更多信息: