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

О индексе и первичном ключе в SQL?

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

Является ли стандартное правило для базы данных SQL автоматически создавать индекс для каждого первичного ключа?

Я прошу об этом, потому что я разрабатываю модель с Django, и мне интересно, не лишнее ли устанавливать как primary_key=True, так и db_index=True.

4b9b3361

Ответ 1

Да, вы можете предположить, что это стандартное правило: для RDBMSs требуется индекс для первичного ключа.

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

Ответ 2

Посмотрите на это

Если ограничение PRIMARY KEY созданный для таблицы базы данных, и нет кластерный индекс в настоящее время существует для этой таблицы, SQL Server автоматически создает кластерный индекс на первичный ключ

из Настройка индекса SQL Server

Ответ 3

В сервере MSSQL создание первичного ключа обычно создает кластеризованный индекс по умолчанию.

Ответ 4

В MySQL первичный ключ является типом индекса (особый уникальный индекс).

Ответ 5

Как правило, в большинстве СУБД обычно используется первичный ключ как индекс.

Это не требование, а очевидная оптимизация (в значительной степени).