mysql - хорошая практика: таблица с более чем одним индексом? - PullRequest
3 голосов
/ 13 сентября 2010

Извините всех,

У меня есть эта мини-таблица с 3 столбцами, но я перечислю значения либо по одному, либо по другому столбцу.

1) Можно ли иметь два таких столбца с индексами?

2) Должен ли у нас быть только один индекс на таблицу?

3) На пределе, если у нас есть таблица с 100 столбцами, например, и 50 из них с индексами, это нормально?

Спасибо, MEM

Ответы [ 3 ]

5 голосов
/ 13 сентября 2010

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

Запустите EXPLAIN для ваших запросов и проверьте, какие индексы используются.Если есть индексы, которые не используются никакими запросами, то они не дают вам никакой пользы и просто замедляют изменения в таблице.Эти неиспользуемые индексы следует удалить.

Возможно, вы также захотите рассмотреть индексы с несколькими столбцами, если вы еще этого не сделали.

1 голос
/ 13 сентября 2010

Чтобы быстро ответить на ваши вопросы, я думаю:

  1. Да, нормально иметь два или даже больше столбцов с индексами
  2. Не обязательно.Вы можете иметь более одного индекса на таблицу.
  3. Возможно, все в порядке, а может и нет.Это зависит.Что касается индексов, они занимают место (в DISK) и делают операции, которые изменяют ваши данные (INSERT / UPDATE / DELETE), медленнее, поскольку для каждого из них будет TABLE и INDEXучаствует обновление.

Создание вашего индекса должно быть обусловлено вашими запросами.Посмотрите, какие запросы вы будете иметь в своей системе, и соответственно создайте индексы.

1 голос
/ 13 сентября 2010

Нет проблем с наличием более одного индекса на таблицу, и нет, один индекс на таблицу на самом деле не является рекомендацией.

Слишком много индексов неэффективно, потому что

  • Требуется дополнительное хранилище
  • MySQL должен определить, какой индекс использовать для конкретного запроса

Редактировать: в соответствии с Пабло и Марком, вам нужно понять как к вашим данным обращаются, чтобы вы смогли построить эффективные индексы.Затем вы можете уточнить и уменьшить индексы.

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