Имеется запрос такого вида:
SELECT `id` FROM `table`
WHERE `index1` = :index1
AND `index2` = :index2
AND `index3` = :index3
AND `index4` = :index4
FOR UPDATE
.. где id
- это первичный ключ, а indexN
- это колонки с индексами.
Далее, на основании существования id
должна производиться либо вставка новой строки INSERT
, либо её обновление UPDATE
.
Первый вопрос: будут ли операцией FOR UPDATE
заблокированы на изменение другие строки, в которых часть индексов indexN
будет совпадать по значению, указанному в WHERE
?
И второй вопрос: является ли операция INSERT ON DUPLICATE KEY UPDATE
эффективнее обозначенной выше, если предполагается, что INSERT
- единовременная, тогда как последующих UPDATE
- будет подавляющее большинство?
Вопрос 1: Нет. Блокируются только отобранные записи.
Вопрос 2: Да, несомненно.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Делаю приложение, которое работает server side и показывает таблицу со 120000 книгами
Возникла необходимость избавиться от второго метода сравнения compareоднако после его удаления программа не компилируетсяПодскажите в чем...
Мне нужно построить клиент-серверную архитектуруКлиентом выступает Android приложение, однако в будущем планируется и создание web-страницы...
Как сделать, чтобы при скрытии нескольких View-элементов, находящихся рядом в LinearLayout было так: