У многостолбцовых индексов в MariaDB также есть это свойство в MySQL? - PullRequest
0 голосов
/ 05 апреля 2019

Согласно документации 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, но я не уверен, что эта относительно эзотерическая деталь была бы одинаковой для обоих механизмов.

Ответы [ 2 ]

1 голос
/ 07 апреля 2019

Как Документация MariaDB относится к нумерации версий MySQL 5.7 InnoDB, все функции из 5.7 должны быть в MariaDB 10.2 или новее.

Кроме того, этот урок ставит аналогичный вопрос, который заставляет меня поверить, что это неотъемлемая часть поведения InnoDB.

1 голос
/ 05 апреля 2019

Да.Это верно для всех баз данных, использующих индексы B-Tree.

Индексы были бы гораздо менее эффективными, если бы это было не так.

...