Как сделать счетчик просмотров видео используя бд,но так чтобы если в один момент видео посмотрели несколько человек, были учтены все эти просмотры,а не сложилась такая ситуация что видео посмотрели 5 человек за один момент,и из-за времени на изменение значения просмотров в бд, 5 просмотров засчитались как один. Про блокировки в бд знаю,но они замедляют работу в разы (в данном случае в 5 раз),тем более изменение количества просмотров будет проходить в одной транзакции с другими запросами
И что будет если несколько пользователей в один момент вызову факт просмотра?Количество просмотров увеличиться только на 1,так как все пользователи дернут в один момент одинаковую переменную ,обозначающую количество просмотров
sim3x: А при работе в транзакции?Или через запрос из орм django?И где можно почитать про то как postgres в такой и подобных ситуациях работает (желательно на русском но можно и на английском)?Спасибо
sim3x: Ну как я понял рейсондишена не будет только при условии что я буду использовать уровень изоляции serializable, а по умолчанию постгрес ничего не разруливает
хранить просмотры в redis, например
Он имеер атомарные операции инкремента.
И вообще, если mysql то делать как-то так UPDATE table SET count = count + 1