Какова разница между уровнями изоляции сериализуемого и повторяемого чтения?
В чем разница между уровнями изоляции "сериализуемый" (serializable) и "повторяемый чтение" (repeatable read)? Может кто-нибудь привести простой пример для наглядности?
1 ответ(ов)
Повторяемое чтение предотвращает только неповторяемое чтение (то есть вы можете прочитать одни и те же данные в одной транзакции, не опасаясь, что кто-то их изменит — хотя такая необходимость возникает довольно редко).
Сериализуемая изоляция предотвращает как неповторяемое чтение, так и фантомные строки (то есть вы не можете даже выполнять операции INSERT). Это означает, что вы можете ЧИТАТЬ и ЗАПИСЫВАТЬ (SELECT, UPDATE) строки, которые не входят в сериализуемую транзакцию, но не можете УДАЛЯТЬ или ВСТАВЛЯТЬ строки на уровне таблицы.
Обе изоляции — повторяемое чтение и сериализуемая — очень строгие, и не всегда есть необходимость в их использовании!
Postgres: Как повысить пользователя до суперпользователя?
Как вставить несколько строк в SQLite?
Решения для INSERT OR UPDATE в SQL Server
Выполнение SQL из файла в SQLAlchemy
Использование таблицы базы данных в качестве очереди