phpMyAdmin想要将多个索引添加为一个多列索引

Tat*_*nen 2 mysql indexing phpmyadmin

我正在使用phpMyAdmin创建表,并希望将两个不同的列定义为索引.我不是要创建一个多列索引,但是phpMyAdmin会创建它们.这有什么问题吗?这些字段不直接相互关联,并且两个字段不会同时用于WHERE子句.

考虑:

ALTER TABLE `documents` ADD INDEX (`offer_number`, `contract_number`);
Run Code Online (Sandbox Code Playgroud)

和:

ALTER TABLE `documents` ADD INDEX (`offer_number`);
ALTER TABLE `documents` ADD INDEX (`contract_number`);
Run Code Online (Sandbox Code Playgroud)

有什么不同?

Dan*_*man 7

如果索引的第一列与查询中使用的列匹配,MySQL只能使用索引.换句话说,如果执行contract_number可以使用索引的查询,则不会使用复合索引,因为contract_number它不是该键中的第一列.但是,复合索引可用于使用的查询offer_number.