Различные способы создания индекса в MySQL? - PullRequest
0 голосов
/ 21 сентября 2011

Если я использую

CREATE INDEX status_index ON eligible_users (status)

или

CREATE INDEX status ON eligible_users (status)

это то же самое, без разницы?

Также, если я создам много индексов, это действительно поможет с запросами или замедлится?

Ответы [ 2 ]

3 голосов
/ 21 сентября 2011

Оба написанных вами заявления делают одно и то же, единственное отличие - это название индекса.

Что касается полезности, то это зависит от настройки и использования базы данных.Индексы полезны для ускорения запросов, но они должны поддерживаться при каждой INSERT / UPDATE, так что это зависит.В Интернете доступно множество ресурсов по этой широкой теме.

Индекс может создавать или прерывать запрос.Время выполнения для определенных запросов может переходить от минут до долей секунды, просто добавляя правильные индексы.Если вам нужно улучшить запрос, вы всегда можете добавить к нему EXPLAIN, чтобы увидеть, каков план выполнения MySQL: он покажет, какие индексы использует запрос (если есть), и поможет устранить некоторые узкие места.

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

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

Краткий синтаксис для создания индекса одного столбца для столбца col из таблицы tbl:

CREATE INDEX [index_name] ON tbl (col)

Полная информация доступна в Руководстве MySQL .

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