Есть ли польза от создания и индексации первичного ключа? - PullRequest
3 голосов
/ 20 сентября 2011

Я проверил это сообщение SO:

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

и нашел выражение:

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

Исходя из этого, у меня есть два вопроса:

  • Могу ли я предположить, что нет никакого выигрыша в производительности при создании индекса для самого первичного ключа, поскольку первичный ключ по своей структуре является индексом?

Возможно, более важный вопрос:

  • Если вы делаете классический пример, который цитируют люди, выполняющий SELECT на основе lastName и firstName, и у этой таблицы есть первичный ключ, который вы также часто выбираете SELECT, вы бы создали индекс как (primary_key, lastName,firstName) или просто (lastName, firstName), поскольку первичный ключ уже является индексом?

Ответы [ 2 ]

1 голос
/ 20 сентября 2011

На первый вопрос, да, вы можете с уверенностью предположить, что.

На второй вопрос:

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

Преимущество индексов, которые вы можете создать самостоятельно, зависит от того, как вы собираетесь искатьданные.

В вашем примере я бы создал ИНДЕКС для полей имени, если вы собираетесь искать их в своем приложении.

0 голосов
/ 20 сентября 2011

Если есть индекс на PRIMARY_KEY и индекс на LastName, FirstName, это автоматически не означает индекс на PRIMARY_KEY, LastName, FirstName.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...