26:24 неправильно. Write блокирует на чтение и запись всем кроме процесса который получил блокировку. Read блокирует на запись всем включаяя сам процесс - все могут только читать
Что-то мало вопросов интересных было (понятно что в мануалах всё написано будет но) Как deadlock в итоге разрулится-то - какая из транзакций зафейлиться в итоге? Вот есть транзакция которая блокирует одну строку - делает сэйв поинт - блокирует вторую строку. Понятное дело сейчас заблокировано две строки. А если сделать ролбак на сейвпонит - будет ли заблокирована вторая строка? Я никогда не слышал о сериалайзбл блокировке но не важно, так при этой блокировке нельзя будет и со слейва читать? По ходу курса не слышал (а может прослушал) про master/slave, master+master, view. так же не понял что такое ключ и нафига он вообще нужен почему нужно считать длину ключа и почему это важно. Судя по аудитории им было очень интересно и полезно и без того. Спасибо
Совсем непонятно на 21:57 что происходит. Там в начале первый пользователь коммитит, а потом вторым пользователем выполняется команда UPDATE? Или второй пользователь до коммита первого проводит операцию? Я учусь, и для меня это неочевидно. Хотелось бы, чтобы не нужно было строить догадок.
Добрый день! Спасибо за отличные ролики! Очень круто! Есть одно замечание-предложение. В видео показывать ссылки (а они же не кликается), особенно на Вики - история странная. Понятное дело, что ссылки можно продублировать в описание, но вот в в видео или надо короткие ссылки вставлять, или QR-коды. Успехов в развитии канала!!!
Спасибо за отклик! Суть в том, что ко всем докладам презентация прикладывается в описание и перейти можно оттуда. Можно даже сказать что презентация чаще всего используется как рабочий материал при выполнении заданий - там даже код специально не скриншотами натыкан, а текстом оформлен :) Но задумаемся, спасибо.
Возможна ошибка. Насколько я знаю for update это не MVCC, for update - это пессимистическая блокировка на строку, а MVCC - это оптимистическая блокировка по полю version, пример SET name = 'A', version = version + 1 WHERE id = 1 AND version = 1
@@andreybespalov3629 в целом там все достаточно просто - вести всё двойной записью как в бухгалтерии :) Тогда ничего не возьмется из ниоткуда и не уйдет в никуда)
Мне несколько раз приходила некотороя сумма, но я делов не знаю, что за переводы, фигурирует Тинькофф, а я с ним не имела делов, это получается они пользуются моими данными? Подскажите пожалуйсто.
Как можно тестировать блокировки и гонки событий при транзакциях? Я говорю даже не про автотесты, а хотя бы про ручные. Или хотя бы не тесты, а про детализированный пошаговый дебаг.
@@Rclass увы, самодуров подобного плана много на руководящих постах. Скажите, пожалуйста, если во время выполнения транзации , а сервер бэкенда упал. Теперь эта операция с бд заблочится до ребута сервера базы данных?
@@erwererwrwr мы имели ввиду что он не занимался педагогикой отдельно) Интересный вопрос, скорее всего операция откатится, но врать не будем - нужно уточнять.
Я пробовал гуглить про остановку транзакций, так чтот не могу найти, можно ссилку мли какойто термин, ато остановка транзакции либо коміт, ролбек, либо просто статьи про транзакции. В видео ви говорили, что любая длл команда ето остановка транзакции
Добрый день! Если вы начали транзакцию, то у нее всего два пути завершения - либо применить все изменения, либо их откатить. Это COMMIT и ROLLBACK соответственно. Опишите поподробнее: какого эффекта вы хотите добиться?
26:24 неправильно. Write блокирует на чтение и запись всем кроме процесса который получил блокировку. Read блокирует на запись всем включаяя сам процесс - все могут только читать
Отличное замечание - оговорился/просмотрел, в закреп!
Спасибо за такой курс по SQL. Очень полезно и инфомративно! Отдельная благодарность за презентации, буду пересматривать для закрепления материала.
Спасибо, мы старались :)
Эти уроки, а особенно преподаватель - самородок! Всё очень доступно и доходчиво. Браво! 👍
Спасибо большое :)
Спасибо, все четко по делу и с хорошей презентацией. Жду новые лекции
Спасибо, мы старались :)
Про финансовые транзакции очень интересно!
Как-нибудь обязательно расскажем ;)
@@Rclass ждёмс
Большое спасибо! Это самое понятное объяснение из тех, что я встречал!
Спасибо, мы старались :)
Красавчик, очень полезное видео, однозначно лайк
Спасибо, мы старались ^_^
Как круто он обьсняет
Спасибо, мы старались :)
Спасибо за урок!
Все понятно и крайне необходимо!))
Спасибо, мы старались :)
У вас отличные материалы! Спасибо!
Спасибо, мы старались ^_^
24:50 - мне одному показалось, что автор объясняет тут про FOR UPDATE, а не про FOR SHARE?
У него каждую минуту по ошибке или не верному высказыванию
Очень благодарен за видос! зашло.
Спасибо, мы старались ^_^
Спасибо) Все очень доходчиво! 🔥
Спасибо, мы старались :)
Что-то мало вопросов интересных было (понятно что в мануалах всё написано будет но)
Как deadlock в итоге разрулится-то - какая из транзакций зафейлиться в итоге?
Вот есть транзакция которая блокирует одну строку - делает сэйв поинт - блокирует вторую строку. Понятное дело сейчас заблокировано две строки. А если сделать ролбак на сейвпонит - будет ли заблокирована вторая строка?
Я никогда не слышал о сериалайзбл блокировке но не важно, так при этой блокировке нельзя будет и со слейва читать?
По ходу курса не слышал (а может прослушал) про master/slave, master+master, view. так же не понял что такое ключ и нафига он вообще нужен почему нужно считать длину ключа и почему это важно.
Судя по аудитории им было очень интересно и полезно и без того.
Спасибо
Добрый день!
Курс ознакомительный, поэтому много чего нет. Те же хранимки например)
Качественно и понятно, спасибо
Спасибо, мы старались :)
Совсем непонятно на 21:57 что происходит. Там в начале первый пользователь коммитит, а потом вторым пользователем выполняется команда UPDATE? Или второй пользователь до коммита первого проводит операцию? Я учусь, и для меня это неочевидно. Хотелось бы, чтобы не нужно было строить догадок.
Добрый день! Спасибо за отличные ролики! Очень круто! Есть одно замечание-предложение. В видео показывать ссылки (а они же не кликается), особенно на Вики - история странная. Понятное дело, что ссылки можно продублировать в описание, но вот в в видео или надо короткие ссылки вставлять, или QR-коды. Успехов в развитии канала!!!
Спасибо за отклик! Суть в том, что ко всем докладам презентация прикладывается в описание и перейти можно оттуда. Можно даже сказать что презентация чаще всего используется как рабочий материал при выполнении заданий - там даже код специально не скриншотами натыкан, а текстом оформлен :) Но задумаемся, спасибо.
Спасибо большое
Спасибо что смотрите :) Мы для вас старались :)
Возможна ошибка. Насколько я знаю for update это не MVCC, for update - это пессимистическая блокировка на строку, а MVCC - это оптимистическая блокировка по полю version, пример SET name = 'A',
version = version + 1
WHERE id = 1 AND version = 1
Ребят, а где видос про финансовые операции?
Не сделали(
@@Rclass Жаль, очень интересная тема. Попробовав погуглить нашел лишь один видеоролик на эту тему, не более(
@@andreybespalov3629 в целом там все достаточно просто - вести всё двойной записью как в бухгалтерии :) Тогда ничего не возьмется из ниоткуда и не уйдет в никуда)
Я так понимаю. Играет кто-то по сети и тут идет запланированное ТО и накатывают патч. Все Юзеры получают LOCK TABLES и начинают грустить. Правильно?
Мне несколько раз приходила некотороя сумма, но я делов не знаю, что за переводы, фигурирует Тинькофф, а я с ним не имела делов, это получается они пользуются моими данными? Подскажите пожалуйсто.
Не совсем поняли о чем вы)
Как можно тестировать блокировки и гонки событий при транзакциях? Я говорю даже не про автотесты, а хотя бы про ручные. Или хотя бы не тесты, а про детализированный пошаговый дебаг.
Собственно, сам отвечаю: открыть два окна в редакторе запросов и выполнять каждый пошагово, расставляя в нужных местах sleep.
Как только столкнемся - обязательно попробуем найти для этого подходящий инструмент :)
Спасибо
Всегда пожалуйста :)
Жаль, ссылки из видео не добавлены в описание под видео на ютубе, а так - спасибо большое, у вас неплохо с педагогикой, вы где-то учились отдельно?
Спасибо :) Ссылки есть в презентации - там есть всё вплоть до примеров кода. Наш технический директор занятия педагогикой категорически отрицает))
@@Rclass увы, самодуров подобного плана много на руководящих постах.
Скажите, пожалуйста, если во время выполнения транзации , а сервер бэкенда упал. Теперь эта операция с бд заблочится до ребута сервера базы данных?
@@erwererwrwr мы имели ввиду что он не занимался педагогикой отдельно) Интересный вопрос, скорее всего операция откатится, но врать не будем - нужно уточнять.
@@Rclass спасибо
@@erwererwrwr если до коммита не дошло, то откатится
Полезно
гуд
откатится все
Я пробовал гуглить про остановку транзакций, так чтот не могу найти, можно ссилку мли какойто термин, ато остановка транзакции либо коміт, ролбек, либо просто статьи про транзакции. В видео ви говорили, что любая длл команда ето остановка транзакции
Добрый день! Если вы начали транзакцию, то у нее всего два пути завершения - либо применить все изменения, либо их откатить. Это COMMIT и ROLLBACK соответственно. Опишите поподробнее: какого эффекта вы хотите добиться?
@@Rclass добрый, а если бэкенд упал сразу после start transaction, может ли заблочится доступ по этой операции в бд?
В первых 10 минутах 10 ошибок и не верных терминов.