У меня есть одно уникальное поле в моей таблице, и мне нужно быстро найти его. Нужно ли индексировать его?
Выполняется ли поиск по уникальным полям и индексированным полям в зависимости от скорости или использования ресурсов?
Ответ 1
Нет, вам не нужно индексировать его снова. Когда вы указываете UNIQUE KEY, столбец индексируется. Таким образом, он не имеет разницы в производительности с другим индексированным столбцом (например, PRIMARY KEY) того же типа.
Однако, если тип отличается, разница в производительности будет незначительной.
Ответ 2
Каждое поле UNIQUE по определению индексируется с помощью UNIQUE INDEX - это также самый быстрый путь доступа для поиска.
Ответ 3
Если поле должно быть UNIQUE, то оно должно быть либо PRIMARY KEY, либо UNIQUE INDEX.
Что касается производительности между UNIQUE INDEX и INDEX, нет никакой разницы при выборе, так как оба будут использовать тот же алгоритм, то есть хеширование или b-дерево. Это просто с индексом UNIQUE, особенно с числовым, т.е. INT one, он будет быстрее, чем индекс, который содержит дубликаты, поскольку алгоритмы, такие как b-tree, могут более эффективно получить требуемую строку (строки)