phpMyAdmin хочет добавить несколько индексов как один индекс из нескольких столбцов - PullRequest
2 голосов
/ 21 октября 2010

Я создаю таблицы с использованием phpMyAdmin и хочу определить два разных столбца в качестве индексов.Я не пытаюсь создать многостолбцовый индекс, но phpMyAdmin создает их как таковые.Есть ли возможные проблемы с этим?Поля не связаны друг с другом напрямую, и оба поля не будут использоваться в предложениях WHERE одновременно.

Рассмотрим:

ALTER TABLE `documents` ADD INDEX (`offer_number`, `contract_number`);

И:

ALTER TABLE `documents` ADD INDEX (`offer_number`);
ALTER TABLE `documents` ADD INDEX (`contract_number`);

Какая разница?

Ответы [ 2 ]

7 голосов
/ 21 октября 2010

MySQL может использовать индекс только в том случае, если первые столбцы индекса соответствуют столбцам, используемым в запросе.Другими словами, если вы выполняете запрос, где можно использовать индекс для contract_number, составной индекс не будет использоваться, поскольку contract_number не является первым столбцом в этом ключе.Составной индекс может использоваться для запроса, где используется, однако, offer_number.

3 голосов
/ 21 октября 2010

http://dev.mysql.com/doc/refman/5.0/en/multiple-column-indexes.html

http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html

Учитывая то, что вы говорите об этих полях, они не должны входить в один индекс из нескольких столбцов.

Если вы хотитечтобы создать индексы с одним столбцом в PhpMyAdmin, необходимо создавать их по одному за раз.

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