Ответ
Нет, не должны. Индексы создаются для ускорения поиска и могут быть как уникальными, так и неуникальными.
- Неуникальный индекс: Допускает дублирование значений в индексируемых столбцах. Используется для оптимизации запросов с условиями
WHERE,ORDER BY,JOIN.CREATE INDEX idx_department_id ON employees(department_id); - Уникальный индекс: Запрещает дублирование значений. Обеспечивает и ускорение запросов, и целостность данных (аналогично ограничению
UNIQUE CONSTRAINT).CREATE UNIQUE INDEX idx_user_email ON users(email);
Выбор типа индекса зависит от бизнес-логики: нужна ли гарантия уникальности данных или просто повышение производительности запросов по неключевым полям.