У меня есть таблица, которая пока пуста, но будет загружена сотнями миллионов записей.Перед тем, как выполнить эту загрузку, я хочу создать несколько разделов в таблице, чтобы повысить производительность запросов и впоследствии разрешить более эффективное удаление (просто обрезать весь раздел).
Используемый код изменения таблицы:
ALTER TABLE `TABLE_NAME`
PARTITION BY RANGE (YEAR(DATE_FIELD)) (
PARTITION y1 VALUES LESS THAN (2017),
PARTITION y2 VALUES LESS THAN (2018),
PARTITION y3 VALUES LESS THAN (2019),
PARTITION ymax VALUES LESS THAN (2050)
);
Когда я запускаю код в MySQL Workbench, он работает без ошибок.когда я проверяю таблицу, разделы не отображаются в списке:
, а в автоматически сгенерированном DDL раздел закомментируется:
CREATE TABLE `TABLE_NAME` (
`field1` decimal(5,2) DEFAULT NULL,
`field2` decimal(5,2) DEFAULT NULL,
`DATE_FIELD` date NOT NULL,
`field3` float DEFAULT NULL,
`field4` float DEFAULT NULL,
`field5` datetime DEFAULT NULL,
`field6` varchar(50) NOT NULL,
PRIMARY KEY (`field6`,`DATE_FIELD`),
KEY `dd_IDX1` (`DATE_FIELD`,`field1`,`field2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
/*!50100 PARTITION BY RANGE (year(`DATE_FIELD`))
(PARTITION y1 VALUES LESS THAN (2017) ENGINE = InnoDB,
PARTITION y2 VALUES LESS THAN (2018) ENGINE = InnoDB,
PARTITION y3 VALUES LESS THAN (2019) ENGINE = InnoDB,
PARTITION ymax VALUES LESS THAN (2050) ENGINE = InnoDB) */
Я не могу понять, почему это так.Я загрузил несколько фальшивых записей, чтобы посмотреть, не является ли причиной недостаток данных.Я также попытался закомментировать разделы и создал новую таблицу без удачи.