Мое приложение в настоящее время выполняет что-то вроде следующего (минимальный пример):
UPDATE counts SET count = count + 1 WHERE id = 1
UPDATE counts SET count = count + 1 WHERE id = 2
UPDATE counts SET count = count + 1 WHERE id = 2
UPDATE counts SET count = count + 1 WHERE id = 3
UPDATE counts SET count = count + 1 WHERE id = 3
Однако существует несколько тысяч обновлений в секунду, и при пиковом трафике оно слишком медленное.
Поэтому я хотел бы ускорить это, объединив заявления.Следующее, конечно, не работает:
UPDATE counts SET count = count + 1 WHERE id IN (1, 2, 2, 3, 3)
count
s 2
и 3
будут неправильными (1 вместо 2).
У меня есть вручнуюразделить его на что-то вроде следующего:
UPDATE counts SET count = count + 1 WHERE id IN (1, 2, 3)
UPDATE counts SET count = count + 1 WHERE id IN (2, 3)
или есть более умный способ сделать это непосредственно в выражении?