Подтвердить что ты не робот

Mysql: Уникальное поле должно быть индексом?

У меня есть одно уникальное поле в моей таблице, и мне нужно быстро найти его. Нужно ли индексировать его?

Выполняется ли поиск по уникальным полям и индексированным полям в зависимости от скорости или использования ресурсов?

4b9b3361

Ответ 1

Нет, вам не нужно индексировать его снова. Когда вы указываете UNIQUE KEY, столбец индексируется. Таким образом, он не имеет разницы в производительности с другим индексированным столбцом (например, PRIMARY KEY) того же типа.

Однако, если тип отличается, разница в производительности будет незначительной.

Ответ 2

Каждое поле UNIQUE по определению индексируется с помощью UNIQUE INDEX - это также самый быстрый путь доступа для поиска.

Ответ 3

Если поле должно быть UNIQUE, то оно должно быть либо PRIMARY KEY, либо UNIQUE INDEX.

Что касается производительности между UNIQUE INDEX и INDEX, нет никакой разницы при выборе, так как оба будут использовать тот же алгоритм, то есть хеширование или b-дерево. Это просто с индексом UNIQUE, особенно с числовым, т.е. INT one, он будет быстрее, чем индекс, который содержит дубликаты, поскольку алгоритмы, такие как b-tree, могут более эффективно получить требуемую строку (строки)