Задавайте вопросы, мы ответим
Вы не зашли.
есть база данных ха несколько лет, и она постоянно растет. Необходимо подсчитать количество записей за месяц по полю дата.(a_date_begin) и вывести в идиной таблице за все время работы.
я ничего кроме как брать месяц отдельный и считать сколько в нем, но тогда получается длинный цикл из одинаковых запросов, что соответственно с каждым днем все более печально.
Неактивен
Какая у Вас версия mysql? Тут виртуальная колонка напрашивается, которая будет месяц содержать.
Какие еще варианты - можно хранить время в timestamp и выбирать по индексу по этому полю - вполне получится.
Можно просто денормализовать, то есть завести поле "месяц" и его индексировать. Но это вариант уже так себе, вдруг вы за день захотите посчитать.
Неактивен
тип сервера: MariaDB
Версия сервера: 5.5.50-MariaDB - MariaDB Server
а по timestamp будет быстрее считать, чем по текстовому полю, если они оба индексы?
Отредактированно kaiseri (28.12.2016 16:26:38)
Неактивен
Посмотрите
https://mariadb.com/kb/en/mariadb/virtu … d-columns/
Ну или смотрите в сторону использования timestamp.
Неактивен