Согласно документации MySQL , если у меня есть многоколонный индекс, то этот индекс также автоматически используется в качестве индекса для любого столбца левого префикса в этом индексе. Пример из документации гласит:
Предположим, что таблица имеет следующую спецификацию:
CREATE TABLE test (
id INT NOT NULL,
last_name CHAR(30) NOT NULL,
first_name CHAR(30) NOT NULL,
PRIMARY KEY (id),
INDEX name (last_name,first_name)
);
Индекс name
- это индекс столбцов last_name
и first_name
. Индекс можно использовать для поиска в запросах, которые задают значения в известном диапазоне для комбинаций значений last_name
и first_name
. Он также может использоваться для запросов, которые указывают только значение last_name
, поскольку этот столбец является крайним левым префиксом индекса (как описано далее в этом разделе).
Этот вопрос и ответ также объясняют то же самое: https://stackoverflow.com/a/48827874/473792
У многостолбцовых индексов в MariaDB также есть это свойство? Я знаю, что MariaDB разветвлен от MySQL, но я не уверен, что эта относительно эзотерическая деталь была бы одинаковой для обоих механизмов.