Я думаю, что с SQLite3, по крайней мере, он не сохраняет кэшированные страницы, потому что нет сервера, и каждая запись завершает работу SQLite3, поэтому он не может напрямую выполнять кэширование.В MySQL, Postgresql или MongoDB будет слой, который, когда считается, что данные уже сохранены, фактически находится в кеше памяти СУБД ... для последующей записи на диск.
И даже когда он записывается на диск, существует слой ОС, в котором хранятся сектора, которые должны быть записаны на диск.
А также кэш жесткого диска.При размере 8 МБ, возможно, когда тест вставляет данные, создавая базу данных объемом 800 МБ, ошибка может составлять 1% или менее.
Но как быть с другими уровнями?Там действительно должно быть сбрасывать до уровня ОС.В противном случае на компьютерах, имеющих 4 ГБ ОЗУ или 8 ГБ ОЗУ, вся база данных может легко находиться в ОЗУ, если она считается достаточно быстрой.Как мы скажем тесту сбросить данные до физического уровня жесткого диска или, по крайней мере, из уровня ОС?