Запис переглядів дуже простий, просто додайте рядок до таблиці, яка представляє дію "view". Це швидко, тому що не потрібно блокувати в базі даних, ви просто додаєте рядок у кінці купи.
Сукупність цих даних у загальній кількості переглядів вимагає щось подібне до виконання, SELECT COUNT(*) FROM ...
що означає, що вам потрібно заблокувати таблицю під час проходження обчислення. Крім того, UPDATE ... SET num_views = num_views + 1
також потрібно блокувати відповідний рядок кожного разу, коли хтось його переглядає.
Тож з точки зору масштабованості набагато ефективніше додавати рядок кожного разу, коли хтось переглядає відео, а потім робити SELECT COUNT(*) FROM ...
кожні десять хвилин.
Примітка. Насправді я не знаю архітектури YouTube, чи вони взагалі використовують реляційну базу даних для зберігання своїх даних, але що б вони не використовували, принцип, ймовірно, той самий: вставлення даних дешеве, агрегація значень (відносно) дорога .