В общем, я вижу два простых способа убедиться, что в таблице нет повторяющихся строк.
Последнее будет больше для реализации. Предлагает ли он улучшения производительности, сравнивающие первичный ключ int, а не 3 столбца? Или mysql внутренне уже использует какой-то хэш на столбцах, когда он проверяет уникальность?
EDIT: типы столбцов: int (11), int (11) и datetime (6)
Количество байтов в индексе ограничено. Например, InnoDB ограничивает индекс до 767 байтов (как описано в документации). Таким образом, в зависимости от вашей строки вы не сможете определить уникальный индекс или первичный ключ для всех столбцов.
Реализация хэша имеет два недостатка:
Это все возможно - как триггеры вставки/обновления, чтобы гарантировать уникальность.
Я предполагаю, однако, что вам не нужно уникальное ограничение для всех столбцов. Некоторое подмножество, вероятно, разумно гарантировать уникальность. И если они уникальны, вся строка уникальна.