У меня есть таблица журналов, которая обрабатывается каждую ночь. Обработка будет выполнена на данных, которые были зарегистрированы вчера. После завершения обработки я хочу удалить данные за этот день. В то же время в таблицу поступают новые данные за текущий день. Я разделил таблицу на основе дня недели. Я надеялся, что смогу удалить данные и вставить данные одновременно без споров. В день может обрабатываться до 3 миллионов строк данных. Я искал информацию, но не нашел ничего, чтобы подтвердить мое предположение.
Я не хочу, чтобы у меня были проблемы с написанием работы, которая добавляет разделы и удаляет разделы, как я видел в других примерах. Я надеялся реализовать решение, используя семь разделов. например.
CREATE TABLE `professional_scoring_log` (
`professional_id` int(11) NOT NULL,
`score_date` date NOT NULL,
`scoring_category_attribute_id` int(11) NOT NULL,
`displayable_score` decimal(7,3) NOT NULL,
`created_at` datetime NOT NULL,
PRIMARY KEY (`professional_id`,`score_date`,`scoring_category_attribute_id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8
/*!50100 PARTITION BY RANGE (DAYOFWEEK(`score_date`))
(PARTITION Sun VALUES LESS THAN (2) ENGINE = InnoDB,
PARTITION Mon VALUES LESS THAN (3) ENGINE = InnoDB,
PARTITION Tue VALUES LESS THAN (4) ENGINE = InnoDB,
PARTITION Wed VALUES LESS THAN (5) ENGINE = InnoDB,
PARTITION Thu VALUES LESS THAN (6) ENGINE = InnoDB,
PARTITION Fri VALUES LESS THAN (7) ENGINE = InnoDB,
PARTITION Sat VALUES LESS THAN (8) ENGINE = InnoDB) */
Когда моя работа, которая обрабатывает вчерашние данные, будет завершена, она удалит все записи, где score_date = current_date-1. В любой момент я, вероятно, собираю данные только в одном или двух разделах, в зависимости от времени суток.
Есть ли дыры в моих предположениях?