user_of_toster
@user_of_toster

Есть ли разница с точки зрения concurrency?

Псевдокод
begin transaction isolation level REPEATABLE READ (или SERIALIZABLE)
update A set C=F where B > (select X from Y where Z = W)
commit

и
begin transaction isolation level REPEATABLE READ (или SERIALIZABLE)
select X from Y where Z = W 'здесь javascriptом забираю максимум в переменную VAR1'
update A set C=F where B > ($1), [VAR1] 'потом напрямую вставляю значение в запрос'
commit

Я правильно понимаю, что после объявления begin transaction вся база снепшотится, поэтому нет разницы, делать подзапрос или забирать данные отдельно. Поэтому два запроса выше эквивалентны с точки зрения concurrency
  • Вопрос задан
  • 53 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы