Разница между ключом, основным ключом, уникальным ключом и индексом в MySQL

Когда следует использовать KEY, PRIMARY KEY, UNIQUE KEY и INDEX?

Ответ 1

KEY и INDEX являются синонимами в MySQL. Они означают одно и то же. В базах данных вы должны использовать indexes для повышения скорости извлечения данных. Обычно индекс создается в столбцах, используемых в предложениях JOIN, WHERE и ORDER BY.

Представьте, что у вас есть таблица под названием users, и вы хотите найти всех пользователей, имеющих фамилию "Смит". Без индекса база данных должна будет пройти через все записи таблицы: это медленно, потому что чем больше записей у вас есть в вашей базе данных, тем больше работы она должна найти, чтобы найти результат. С другой стороны, индекс поможет базе данных быстро перейти к соответствующим страницам, где хранятся записи "Смит". Это очень похоже на то, как мы, люди, просматриваем каталог телефонной книги, чтобы найти кого-то по фамилии: мы не начинаем поиск по каталогу с обложки на обложку, поскольку мы вставляем информацию в некотором порядке, чтобы мы могли используйте для быстрого перехода на страницы "S".

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

Также обратите внимание, что столбцы, определенные как первичные ключи или уникальные ключи, автоматически индексируются в MySQL.

Ответ 2

KEY и INDEX являются синонимами.

Вы должны добавить индекс, когда измерения производительности и EXPLAIN показывают, что запрос неэффективен из-за отсутствующего индекса. Добавление индекса может повысить производительность запросов (но это может замедлить внесение изменений в таблицу).

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

ПЕРВИЧНЫЙ КЛЮЧ - это и единственное ограничение, и это также означает, что столбец NOT NULL. Он используется, чтобы дать идентификатор каждой строке. Это может быть полезно для соединения с другой таблицей с помощью ограничения внешнего ключа. Хотя для таблицы нет необходимости иметь ПЕРВИЧНЫЙ КЛЮЧ, обычно это хорошая идея.

Ответ 3

Первичный ключ не допускает значения NULL, но уникальный ключ допускает значения NULL.

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

Ответ 4

PRIMARY KEY И UNIQUE KEY похожи, кроме того, что у него разные функции. Первичный ключ делает строку таблицы уникальной (т.е. Не может быть 2 строки с одним и тем же ключом). В таблице базы данных может быть только 1 первичный ключ.

Уникальный ключ делает столбец таблицы в строке таблицы уникальным (т.е. нет двух строк таблицы может иметь то же точное значение). У вас может быть более одного уникального столбца таблицы ключей (в отличие от первичного ключа, что означает, что только один столбец таблицы в таблице уникален).

INDEX также создает уникальность. MySQL (пример) создаст таблицу индексирования для индексированного столбца. Таким образом, легче получить значение строки таблицы, когда запрос запрашивается в столбце с индексированной таблицей. Недостатком является то, что если вы выполняете много обновлений/удалений/создания, MySQL должен управлять таблицами индексирования (и это может быть узким местом производительности).

Надеюсь, что это поможет.

Ответ 5

Уникальные ключи: столбцы, в которых нет двух строк, похожих

Первичный ключ: сбор минимального количества столбцов, который может однозначно идентифицировать каждую строку в таблице (т.е. две строки не похожи во всех столбцах, составляющих первичный ключ). В таблице может быть несколько первичных ключей. Если существует уникальный ключ, то это первичный ключ (а не "первичный ключ" ) в таблице. Если не существует уникального ключа, то для идентификации строки, такой как (first_name, last_name, father_name, mother_name), в некоторых таблицах может использоваться более одного значения столбца.

Индекс: используется для оптимизации запросов. Если вы собираетесь многократно искать или сортировать результаты на основе некоторого столбца (например, в основном люди собираются искать студентов по имени, а не по их номеру), тогда его можно оптимизировать, если значения столбца все "индексируется", например, с помощью алгоритма двоичного дерева.

Ответ 6

Как первичный ключ, так и уникальный ключ используются для обеспечения уникальности столбца. Итак, когда вы выбираете один за другим?

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

Разница между основным ключом и уникальным ограничением ключа

1. В таблице может быть только один первичный ключ, но более одного уникального ключа

2. Первичный ключ не разрешает нули, где в качестве уникального ключа допускается один null

Ответ 7

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

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

Ответ 8

Первичный ключ используется для работы с разными таблицами. Это основа реляционных баз данных. Если у вас есть книжная база данных, лучше создать 2 таблицы - 1) книг и 2) авторов с первичным ключом INT "id". Затем вы используете идентификатор в книгах вместо имени авторов.

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

Ответ 9

Уникальный ключ:

  • Более одного значения может быть нулевым.
  • Нет двух кортежей, которые могут иметь одинаковые значения в уникальном ключе.
  • Один или несколько уникальных ключей могут быть объединены для формирования первичного ключа, но не наоборот.

Основной ключ

  • Может содержать несколько уникальных клавиш.
  • Уникально представляет кортеж.