Вы не сказали, для чего это, что поможет.Если это часть системы аутентификации, то почему в ваш запрос также не входит пароль пользователя?Если это не так, уникальный индексированный столбец, используемый для хранения имен, не будет работать очень хорошо в реальной системе, если вы не согласны с тем, что в вашей системе только один и только Вильям.(Это должен был быть Уильям?)
И если это поле имени действительно уникально, вам не нужно использовать COUNT (ID) в вашем запросе.Если «уникальное_имя» действительно уникально, либо вы получите идентификационный номер, возвращенный по вашему запросу, либо вы ничего не получите.
Вы бы хотели что-то вроде этого: ВЫБЕРИТЕ идентификатор от пользователей, ГДЕ уникальное имя = 'Wiliam'
Нет возврата записи, нет Wiliam.
Индекс (уникальный или неуникальный - я не знаю, что вам нужно здесь) для unique_name повысит производительность.
Использование «уникального ключа» isn 'Это очень логично, поэтому я подозреваю, что вы запутались в номенклатуре ключей, индексов, их взаимосвязи и целях для них.
КЛЮЧИ в базе данных используются для создания и идентификации связей между наборами данных.Это то, что делает возможным использование «реляционных» в реляционной базе данных.
Ключи бывают двух видов: первичные и внешние.
ПЕРВИЧНЫЕ КЛЮЧИ идентифицируют каждую строку в таблице.Значение или значения, составляющие ключ, должны быть уникальными.
Первичные ключи могут быть сделаны из одного столбца или из нескольких столбцов (в этом случае он называется составным ключом), которые вместе однозначно идентифицируют строку.Опять же, здесь важна уникальность.
Я использую целочисленный тип данных MySql для моих первичных ключей.
FOREIGN KEYS определяет, какие строки в таблице имеют отношение с другими строками в другихстолы.Внешний ключ записи в одной таблице является первичным ключом связанной записи в другой таблице.Внешний ключ не является уникальным - во многих отношениях существует множество записей с одним и тем же внешним ключом.Однако они должны быть проиндексированы.
INDEXES используются базой данных как своего рода сокращенный метод для быстрого поиска значений, в отличие от сканирования всей таблицы или столбца на предмет совпадения.Подумайте об индексе в конце книги.Гораздо проще найти что-то с помощью индекса книги, чем перелистывать страницы, ищущие это.
Вы также можете индексировать неключевой столбец для повышения производительности при поиске по этому столбцу.Какой столбец вы часто используете в предложении WHERE?Вероятно, следует индексировать его тогда.
UNIQUE INDEX - это индекс, где все значения в нем должны быть различны.Столбец с уникальным индексом не позволит вам вставить повторяющееся значение, потому что это нарушит ограничение уникальности.Первичные ключи являются уникальными индексами.Но уникальные индексы не обязательно должны быть первичными ключами или даже ключом.
Надеюсь, это поможет.
[отредактировано для краткости]