Бази даних · Senior · Запитання 74 з 75
Як тримати коректним денормалізоване значення на кшталт posts.comments_count при паралельних запитах?
- ✓Правильна відповідь: Оновлювати його атомарно в тій самій транзакції, що й вставку коментаря (
SET comments_count = comments_count + 1), або періодично перераховувати з джерела - 2Оновлювати раз на рік
- 3Прочитати поточне значення в застосунку, додати 1 і записати назад
Пояснення
«Прочитати-змінити-записати» в застосунку губить оновлення. Для дуже гарячих лічильників розгляньте шардовані лічильники чи асинхронну агрегацію з періодичною звіркою.