Мне нужно вести статистическую таблицу для проекта, составленную из списка элементов и их использования (Подумайте о чем-то вроде веб-сайта, на котором вы хотели бы подсчитывать просмотры страниц). Каждый раз, когда создается элемент, мне нужно увеличивать использование определенного элемента.
Моя первая реализация:
statistics(
id integer NOT NULL,
name character varying(255) NOT NULL,
usage integer NOT NULL DEFAULT 0,
);
UPDATE statistics
SET usage = usage + 1
WHERE name = '<name>';
Мои опасения касаются производительности и параллелизма. Процесс обновления будет реализован несколькими десятками (может быть, 80-120) устройств и может происходить несколько раз в секунду, поэтому мои вопросы:
1) сохранит ли этот метод параллелизм? (т.е. если более одного устройства запрашивают обновление «одновременно», будет ли учитываться каждый запрос?)
2) Можете ли вы предложить лучший способ достижения результата? Я ожидаю, что у меня будет нагрузка при написании обновлений, в то время как чтение будет гораздо более частым. Существует ли специальная функция для увеличения значений? Я смотрю на «последовательность», но я не уверен, что это правильный путь ...
Заранее большое спасибо за любые советы
источник