2013-12-20 5 views
0

Может кто-нибудь объяснить, в чем разница между Первичным, уникальным и ключом индекса Mysql. Можете ли вы объяснить каждый из них в разных ситуациях. ?Первичный, уникальный и индекс в Mysql

+0

Благодарим за отправку ссылки .. –

ответ

1

да они отличаются

ключ или индекс относится к нормальному, не уникальный индекс. Допустимы нечеткие значения для индекса, поэтому индекс может содержать строки с одинаковыми значениями во всех столбцах индекса. Эти индексы не применяют никаких ограничений на ваши данные, поэтому они используются только для того, чтобы определенные запросы могли выполняться быстро.

UNIQUE относится к индексу, где все строки индекса должны быть уникальными. То есть одна и та же строка может не иметь одинаковых значений, отличных от NULL, для всех столбцов этого индекса в качестве другой строки. Как и для ускорения запросов, индексы UNIQUE могут использоваться для принудительного ограничения ограничений на данные, поскольку система базы данных не допускает нарушения этого правила отдельных значений при вставке или обновлении данных.

Система базы данных может допускать применение индекса UNIQUE к столбцам, которые допускают значения NULL, и в этом случае две строки могут быть одинаковыми, если оба они содержат значение NULL (обоснование здесь состоит в том, что NULL считается не равным для себя). Однако в зависимости от вашего приложения это может быть нежелательным: если вы хотите предотвратить это, вы должны запретить значения NULL в соответствующих столбцах.

PRIMARY действует как UNIQUE-индекс, за исключением того, что он всегда называется «PRIMARY», и может быть только один на таблице (и всегда должен быть один, хотя некоторые системы баз данных не применяют это). PRIMARY индекс предназначен в качестве основного средства для однозначной идентификации любой строки в таблице, поэтому в отличие от UNIQUE он не должен использоваться ни в каких столбцах, которые допускают значения NULL. Ваш индекс PRIMARY должен быть на наименьшем числе столбцов, достаточных для однозначной идентификации строки. Часто это всего лишь один столбец, содержащий уникальный автоинкрементный номер, но если есть что-то еще, что может однозначно идентифицировать строку, такую ​​как «код страны» в списке стран, вы можете использовать это вместо этого.

Некоторые системы баз данных (такие как MySQL InnoDB) будут хранить записи таблицы на диске в том порядке, в котором они отображаются в индексе PRIMARY.

2

Primary - это значение столбца таблицы или комбинация значений более чем одного столбца таблицы, с помощью которой мы можем идентифицировать каждую строку. Например, давайте иметь таблицу Customers с колонками ID int, FirstName varchar(50), LastName(50). Затем идентификационный столбец можно использовать для идентификации пользователей, поэтому его можно использовать как ПК этой таблицы. Был бы только один клиент, если он вообще существует, с ID = 4 или с ID = 10 и т. Д.

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

Указатель - это столбец или комбинация столбцов таблицы, которые ускоряют выполнение запросов к таблице. Это полезно, когда таблица имеет много записей и даже простой запрос занимает слишком много времени для завершения.

Смежные вопросы