это на самом деле меня беспокоит уже несколько дней. У меня есть база данных sqlite (около 300 мегабайт), из которой мне нужно получить очень быстро. Вот почему я решил использовать режим памяти в sqlite с функцией резервного копирования. Вот моя проблема, основанная на этом sqlite do c. Вот му борьба. Когда я использую URI имя файла ": memory:", а затем backup .
Все, что я прекрасно вижу, даже в htop, этот процесс теперь имеет + 300 байт в памяти. Так что все мысли золотые.
Но поскольку мне нужен доступ к этой базе данных из нескольких потоков, и я не могу просто поделиться одним указателем на соединение с БД. Я хочу присвоить имя моей базе данных памяти и установить ее кеш как общий. Но когда я делаю это примерно так:
sqlite3_open("file:memdb1?mode=memory&cache=shared", &db);
Какое имя файла URI скопировано из документации. После того, как база данных резервных копий больше не добавляет 300 МБ в основной процесс памяти и на моем диске создается файл с именем "file: memdb1? Mode = memory & cache = shared" я также попытался "file :: memory :? cache = shared ", но с теми же результатами.
Я на linux Fedora 31 с sqlite 3.30.0
Любые идеи, предложения приветствуются.
Спасибо всем