Накапливайте в памяти. Вы не указали язык программирования на котором такая задача.
PHP - можно сделать
in-memory таблицу в MySQL и делать туда всё теже
UPDATE `news` SET `views`=`views`+1,
раз в N минут обновлять основную таблицу данными из in-memory (
добавлением, а не заменой значения, иначе при рестарте сервера при очередном обновлении потеряются часть показателей)
Golang - хранить количество просмотров в
памяти с RWMutex защитой, раз в N минут сохранять все накопленные изменения в MySQL базу
Так же можно использовать
Memcache,
shared memory, любые другие базы данных, исходя из:
- языка программирования
- доступного инструментария
Так же можно
вынести views поле в отдельную таблицу или даже на другой MySQL сервер:
- либо отдельно views
- либо сделать копию таблицы news
При этом
можно добавить очередь (
RedisMQ или что-либо другое)
для асинхронного увеличения news.views, принцип следующий:
- пользователь запросил страницу - сделалось SELECT
- сделали задание в очередь на обновление статистики
- пользователь получил страницу
- через какое-то время задание по обновлению количества просмотров выполнилось и пользователь ничего не ждал