Не могу разобраться как правильно составить разбиение в MySQL
Есть таблица, в которой хранится определенная информация пользователей. В ней есть 3 колонки: id, relevant_to_date и user_id. id - это классический auto_increment, relevant_to_date - это дата в формате yyyy-mm-dd и user_id - это id пользователя. Имеется и составной PRIMARY индекс: (id, relevant_to_date).
Хочется сделать партицирование на 5 лет вперед, используя колонку relevant_to_date.
Сделал RANGE(YEAR(relevant_to_date)) LESS THAN 2021, LESS THAN 2022, LESS THAN 2023 ... и добавил подкритерии (12 шт.) чтобы еще больше разбить данные: HASH(MONTH(relevant_to_date)) и выполнил EXPLAIN PARTITIONS SELECT * FROM tabel WHERE relevant_to_date = '2020-11-14' и в результате показывает что выборка действительно происходит по нужным разделам (выбирается раздел 2020 года и смотрится подраздел 11, то есть ноября). Собственно, смущает составной индекс. Как он понимает какой использовать раздел, если в составном индексе, упомянутом выше, колонка relevant_to_date занимает второе место, то есть стоит после id, который еще и не указывается при запросах? Добавлю еще и то, что таблица только создается, в ней нет никаких данных.
Правильно ли делается разбиение вообще?