lightalex
@lightalex

Как добавить счетчик при SELECT?

Привет
Можно ли как-то увеличивать поле-счетчик на 1 при SELECT в MySQL?
Мне нужно объединить эти два запроса в один:
UPDATE test SET counter = counter + 1 WHERE id=2
SELECT * FROM test WHERE id=2

Это возможно на текущий момент?
Или все-таки придется использовать блокировки?
  • Вопрос задан
  • 779 просмотров
Решения вопроса 1
@BorisKorobkov Куратор тега MySQL
Web developer
Вариант 1 (неэффективный):
Ну, можно написать хранимую функцию и вызывать ее при select.
SELECT *, update_counter(id) FROM test WHERE id=2. Но все равно будет UPDATE и блокировка.

Вариант 2:
Счетчик эффективнее хранить не в БД, а где-нибудь в memcache, redis, mongo и пр. Разве что можно периодически сохранять его в БД.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы