Я пытаюсь создать приложение на Java (JDK1.8) с Connector / J и MySql.Мне сказали, что Serializable - это самый высокий уровень, но он влияет на производительность, поэтому Serializable обычно не используется.
Но рассмотрим следующую ситуацию:
Есть два коммита, которые собираются обновить поля одной и той же строки (коммит A и коммит B).Если A и B происходят одновременно, а уровень изоляции не является Serializable, могут возникнуть гонки данных, что делает поля несовместимыми.Но на уровне Serializable два обновления не будут происходить одновременно, поэтому либо A происходит раньше, чем B, либо B предшествует A, и строка будет либо в версии A, либо в версии B, но не в некотором сочетании A иB.
Я думал, что атомарность ACID гарантирует синхронизацию A и B. Но кажется, что определение атомарности гарантирует, что только одна транзакция произойдет «все или ничего», она ничего не говорит о одновременных фиксациях.
Так я должен использовать Serializable для предотвращения гонки данных?Какой из ACID действительно гарантирует атомарность одного обновления?