Используя опции synchronous = OFF и journal_mode = MEMORY, я могу уменьшить скорость обновления от 15 мс до 2 мс, что является важным улучшением производительности. Эти обновления происходят по одному, поэтому многие другие оптимизации (например, использование транзакций о связке из них) неприменимы.Худший случай поведения для обновлений с использованием SQLite PRAGMA synchronous = OFF и journal_mode = MEMORY в iOS
Согласно документации SQLite, БД может «испортиться» в худшем случае, если есть отключение питания какого-либо типа. Однако не самое страшное, что может случиться, что данные будут потеряны или, возможно, часть транзакции, которая будет потеряна (что, я думаю, является формой коррупции). Действительно ли возможно, что произвольная коррупция может произойти с любым из этих вариантов? Если да, то почему?
Я не пользуюсь никакими транзакциями, поэтому частично написанные данные от транзакций не являются проблемой, и я могу обрабатывать потери данных один раз в голубой луне. Но если «коррупция» означает, что все данные в БД можно случайным образом изменить непредсказуемым образом, это будет серьезная причина не использовать эти параметры.
Означает ли кто-нибудь, что может быть в самом худшем случае для iOS?
Спасибо за ответ. Считаете ли вы, что этот тип коррупции относится к обоим настройкам или только к журналу_mode = MEMORY? – Locksleyu
В любом случае записи могут быть потеряны. –
Но может ли любое повреждение (т.е. неправильные ключи или значения, которые никогда не могут быть действительными) в любом случае? – Locksleyu