Ключевые особенности транзакционной изоляции SERIALIZABLE в MySQL:
- Низкая скорость выполнения транзакций. 1
- Высокая согласованность данных. 1 На этом уровне моделируется последовательное выполнение всех зафиксированных транзакций, как если бы они выполнялись одна за другой, последовательно, а не параллельно. 1
- Отсутствие фантомного чтения. 1 На уровне изоляции SERIALIZABLE MySQL неявно преобразует все обычные запросы SELECT в SELECT FOR SHARE. 2 Транзакция, удерживающая блокировку SELECT FOR SHARE, позволяет другим транзакциям только ЧИТАТЬ строки, но не ОБНОВЛЯТЬ или УДАЛИТЬ их. 2
Уровень изоляции SERIALIZABLE используется в основном в специализированных ситуациях, например, при работе с транзакциями XA, а также для устранения проблем с параллельностью и мёртвыми блокировками. 4