Как реализовать поле счетчика в таблице MYSQL для каждой даты без транзакций?

У меня есть таблица запросов, в которой я храню дату, время, сообщения и счетчик.

Date        | Counter
2014/12/03  | 1
2014/12/03  | 2
2014/12/03  | 3
2014/12/03  | 4
2014/12/03  | 5
2014/12/04  | 1
2014/12/04  | 2

Поле счетчика хранит увеличенный счетчик для каждой даты, начиная с 1, и при изменении даты он сбрасывается на 1. Я реализовал его, проверив счетчик последней строки с условием даты и добавив следующий счетчик в таблицу запросов.

Но теперь я вижу повторяющиеся значения в поле счетчика для той же даты. Как решить без транзакций.

какая у вас версия mysql

Fahmi 01.02.2019 11:42

версия mysql 5.6.10

Virendra Singh Rathore 01.02.2019 11:46

Есть ли смысл хранить счетчик, когда вы вычисляете его по запросу?

P.Salmon 01.02.2019 11:52

Да, мне нужно рассчитать это по требованию, потому что я создаю некоторый идентификатор из этого количества.

Virendra Singh Rathore 01.02.2019 13:32

Вы не можете решить эту проблему без транзакций или блокировок таблиц. Возможно, вы сможете сделать это с помощью триггера и/или другой таблицы, но это также будет транзакция;)

Vatev 01.02.2019 13:37

@Vatev Не замедлит ли это приложение, если я получу так много запросов одновременно?

Virendra Singh Rathore 01.02.2019 14:11

Это замедлит его (на неизвестную величину), но вы не сможете создавать многопоточные счетчики в реальном времени без блокировки.

Vatev 01.02.2019 14:44
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
7
81
0

Другие вопросы по теме