No SQL Server, você pode criar um índice e incluir colunas adicionais nesse índice que podem ajudar no desempenho em determinadas circunstâncias. Essa mesma capacidade está disponível para mysql ou mariadb com um nome diferente, talvez? Não consegui encontrar nada usando o termo "colunas incluídas".
relate perguntas
-
Existem ferramentas de benchmarking do MySQL? [fechado]
-
Onde posso encontrar o log lento do mysql?
-
Como posso otimizar um mysqldump de um banco de dados grande?
-
Quando é o momento certo para usar o MariaDB em vez do MySQL e por quê?
-
Como um grupo pode rastrear alterações no esquema do banco de dados?
Observando a documentação do MySQL, o glossário indica isso sobre Covering Indexes :
A implicação aqui é que não há equivalente direto de uma
INCLUDE
instrução no MySQL, no entanto, se o índice fornecer cobertura das colunas envolvidas em um índice, ele pode, obviamente, ainda ser considerado como cobertura, como um índice com colunas incluídas no SQL Server seria.MariaDB tem o seguinte em sua documentação para cobrir índices :
O MySQL não suporta colunas incluídas.
No entanto, se você usar o mecanismo de armazenamento InnoDB (que é o padrão), todas as colunas serão incluídas fisicamente na chave primária. Em outras palavras, a chave primária é a tabela. Se você definir a chave primária como
PRIMARY KEY (id)
as linhas serão ordenadas fisicamente porid
; mas para todas as consultas que usam a chave primária, a chave primária será um índice de cobertura.A consulta a seguir usa a chave primária como um índice coberto:
Como Akina apontou em um comentário, os índices secundários do InnoDB incluem uma referência à chave primária. Então se você indexar os campos de email, no índice você terá todos os emails em ordem, e para cada um você terá o id correspondente. Assim, para cada índice secundário, a(s) coluna(s) de chave primária são incluídas(s) coluna(s).
A consulta a seguir usa um índice secundário como índice de cobertura:
Como curiosidade, também posso dizer que o mecanismo de armazenamento TokuDB suporta índices de cluster , que é apenas outro nome para colunas incluídas. Infelizmente, o TokuDB não é mais mantido por seu fornecedor, Percona.