InnoDB, если вы не предоставите ПК, предоставит его вам. Но это 6 байтов и скрыто. По сравнению с 4-байтовым суррогатом INT
, это больше!
Проверьте данные; может существовать «естественный» PK, представляющий собой столбец или комбинацию столбцов.
Как правило, для DW единственным индексом, который я имею в таблице фактов, является PK. Затем я использую «Сводные таблицы» для основной части доступа. Это меньше и быстрее. В крайнем случае я буду очищать старые строки фактов (через DROP PARTITION
), но зависать в сводных таблицах «навсегда». Это позволяет контролировать дисковое пространство, практически не теряя полезных данных.
Итог: укажите явное PK для каждой таблицы.