В настоящее время я планирую Java-сервер, на котором запущен пул потоков, который принимает клиентские подключения, для которых требуется чтение / обновление базы данных.
Как насчет случая множественного чтения / записи наодин ряд?Как мне это сделать?Должен ли я создать очередь на Java или MySQL может обрабатывать такие вещи?
Например, я планирую использовать транзакции, в которых я буду использовать следующее для блокировки строки:
Select <columns> from <table> where <condition> FOR UPDATE;
Вопрос:Что если другой поток заходит и хочет обновить ту же строку перед первым коммитом?Сбой запроса или MySQL будет некоторое время удерживать его и ждать, пока будет снята первая блокировка?
Мое текущее решение: я думаю, что одним из способов сделать это может быть создание статической очереди / каналаиз всех запросов, так что только один подается к БД одновременно.Это, очевидно, узкое место и вообще плохая идея?
Кроме того, существуют ли какие-либо Java-фреймворки, которые обрабатывают такие вещи и соединения MySQL в целом?Спасибо.
РЕДАКТИРОВАТЬ: я планирую использовать пул потоков, поэтому все запросы будут поступать из отдельных соединений.