powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Конкуренция за запись при UPDATE + SELECT
3 сообщений из 3, страница 1 из 1
Конкуренция за запись при UPDATE + SELECT
    #38596704
senyOr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, добрый день!

В начале пример (просто пример, для понимания того, что происходит в базе и почему):
Клиент:
Предположим, что есть некий ресурс, который продает билеты в кино. При этом ресурс предлагает просто КУПИТЬ билет на сеанс, не предлагая при этом, например, место! Всего 20-ть билетов. И вот, появилась толпа тех, кто хотел бы купить билет и практически в одно время нажимают кнопку "КУПИТЬ". Толпа допустим состоит из 50-ти юзеров. И надо понимать, что они нажали кнопку в одно время.
Сервер:
При этом на базе, инициализируется алгоритм, который делает UPDATE первой попавшейся записи, у которой booked=0 (т.е. букает запись), проставляя ей признак booked = 1.
Теперь мы понимаем, что записей было 20-ть, а юзеров 50 и все происходит в один момент.

Справится ли с этой работой MySQL?
Какие могут быть блокировки или другие варианты неблагополучные, которые могут базу подвесить?
И как сделать правильно UPDATE, чтобы измежать возможных проблем.


Если проще, то есть например такой SQL:

update ticket_table
set booked=1
where id_ticket = (select id_ticket from ticket_table where booked = 0 and rownum =1)
...
Рейтинг: 0 / 0
Конкуренция за запись при UPDATE + SELECT
    #38596878
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
senyOrесть например такой SQL:Это проблемы в полный рост.
RTFM "SELECT ... FOR UPDATE"
...
Рейтинг: 0 / 0
Конкуренция за запись при UPDATE + SELECT
    #38597156
Dflz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
одновременно нажать могут, но одновременно получить доступ к данным никогда.
даже при многопотоковости доступ по очереди.
главное учить матчасть.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Конкуренция за запись при UPDATE + SELECT
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]