SQLite WAL-режим, в памяти, база данных с личным кешем?
Я работаю над проектом, который опирается на изоляцию моментального снимка чтения, которую обеспечивает режим журнала WAL в Sqlite. Он использует несколько соединений с одной и той же базой данных для одновременного чтения и записи.
Для тестирования я хотел бы использовать базу данных в памяти, но, насколько я могу судить, это требует SQLITE_OPEN_SHAREDCACHE
(что делает недействительной гарантию изоляции моментального снимка, которую обеспечивает режим WAL).
Есть ли способ открыть несколько подключений к оперативной памяти, режиму WAL, базе данных SQLite в режиме частного кэша?
Есть ли (ранее существовавшее) решение VFS для этой проблемы?
1 ответ
Режим WAL не применяется к базам данных в памяти.
Чтобы получить WAL (и прочитать изоляцию моментального снимка), вам нужно использовать временную базу данных на диске. (Этот диск может быть RAM-диском.)