2009-12-10 3 views
10

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

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

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

ответ

8

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

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

3

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

5

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

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

из SQL Server Index Tuning

2

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

2

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

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

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