MySQL более одного ключа INDEX для одного столбца - PullRequest
4 голосов
/ 27 мая 2011

Правильно ли иметь более одного ключа INDEX для одного и того же столбца в базе данных MySQL?

например, поле id дважды индексируется с другим Keyname, в то время как phpmyadmin выдает мне предупреждение:

Для столбца id

было создано более одного ключа INDEX. Я хотел бы знать, все ли в порядке, и есть ли какие-либо эффекты или побочные эффекты в моем сценарии илисервер использует этот метод?

Я использую этот метод для группировки столбцов для каждого индекса.

Ответы [ 2 ]

9 голосов
/ 27 мая 2011

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

1 голос
/ 07 октября 2013

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

Это зависит от того, что вы ищете.Если вы ожидаете, что пользователь будет искать фамилии, и вы сохраняете имя и фамилию в одном и том же столбце, тогда многие запросы будут иметь вид

LIKE %lastname

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

С подстановочными знаками в начале и в конце.

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