Как стать автором
Обновить

Комментарии 9

То есть в итоге все зря и откатить назад — снова боль и страдание?
Просто придется пересобирать партиции раз в год. Можно задачу в крон поставить)
Шаг 2. Пришлось поменять поле timestamp на datetime.

А по какой причине?
Из-за следующей ошибки:
ERROR 1486 (HY000): Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
Ну, у меня заббикс на похожих партициях (только по дате) вполне себе живёт, так что должно работать.
У нас в проекте для партиций и поиска год и месяц вынесены в отдельные поля и партиции собственно по годам с субпартициями по месяцам:
PARTITION BY RANGE (Year)
SUBPARTITION BY LINEAR HASH (Month)
SUBPARTITIONS 12
(PARTITION p0 VALUES LESS THAN (2010) ENGINE = InnoDB,
 PARTITION p1 VALUES LESS THAN (2011) ENGINE = InnoDB,
 PARTITION p2 VALUES LESS THAN (2012) ENGINE = InnoDB,
 PARTITION p3 VALUES LESS THAN (2013) ENGINE = InnoDB,
 PARTITION p4 VALUES LESS THAN (2014) ENGINE = InnoDB,
 PARTITION p5 VALUES LESS THAN (2015) ENGINE = InnoDB,
 PARTITION p6 VALUES LESS THAN (2016) ENGINE = InnoDB,
 PARTITION p7 VALUES LESS THAN (2017) ENGINE = InnoDB,
 PARTITION p8 VALUES LESS THAN MAXVALUE ENGINE = InnoDB)

Думаю мускулу явно проще разбивать и выбирать данные по ключу нежели делать расчёт по дате или я ошибаюсь?
Думаю легче, но выборка все равно идет в пределах одной таблицы, если будет плохо работать, то наверное так и придется создавать отдельные поля. В этом случае получится дублирование данных в таблице, и придется заносить туда YEAR, и MONTH от даты, и следить чтобы они друг другу соответствовали. В вашем случае можно было использовать функцию YEAR, а вынести только месяц, но наверное уже были не критично.
В нашем случае это ежемесячная отчётность и поля с месяцем и годом не избыточные, а основные. Дата внесения есть, но данные заносят в конце месяца-начале следующего и на неё нельзя опираться.
А, ну в моем случае выборка идет по датам, а не по месяцу и году.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории