Índices de Múltiplas Colunas


O MariaDB pode criar índices em múltiplas colunas. Um índice pode consistir de até 15 colunas. (Em colunas CHAR e VARCHAR você também pode utilizar um prefixo da coluna como parte de um índice).

Um índice de múltiplas colunas pode ser considerado um array ordenado contendo valores que são criados concatenando valores de colunas indexadas.

O MariaDB utiliza índices de múltiplas colunas de forma que consultas são rápidas quando você especifica uma quantidade conhecida para a primeira coluna do índice em uma cláusula WHERE, mesmo se você não especificar valores para as outras colunas.

Suponha que uma tabela tenha a seguinte especificação:

mysql> CREATE TABLE teste (
 id INT NOT NULL,
 ultimo_nome CHAR(30) NOT NULL,
 primeiro_nome CHAR(30) NOT NULL,
 PRIMARY KEY (id),
 INDEX nome (ultimo_nome,primeiro_nome));

Então o índice nome é um índice com ultimo_nome e primeiro_nome. O índice será usado para consultas que especificarem valores em um limite conhecido para ultimo_nome, ou para ambos ultimo_nome e primeiro_nome. Desta forma, o índice nome será usado nas seguintes consultas:

mysql> SELECT * FROM teste WHERE ultimo_nome='Widenius';
mysql> SELECT * FROM teste WHERE ultimo_nome='Widenius'
 AND primeiro_nome='Michael';
mysql> SELECT * FROM teste WHERE ultimo_nome='Widenius'
 AND (primeiro_nome='Michael' OR primeiro_nome='Monty');
mysql> SELECT * FROM teste WHERE ultimo_nome='Widenius'
 AND primeiro_nome >='M' AND primeiro_nome < 'N';

Entretanto, o índice nome não será usado nas seguintes consultas:

mysql> SELECT * FROM teste WHERE primeiro_nome='Michael';
mysql> SELECT * FROM teste WHERE ultimo_nome='Widenius'
 OR primeiro_nome='Michael';

Para maiores informações sobre a maneira que o MariaDB utiliza índices para melhorar o desempenho das consultas, veja "Como o MariaDB Utiliza Índices".

Retornar