Se eu tiver uma tabela com a seguinte chave primária:
PRIMARY KEY (id)
E eu quero consultar documentos escritos por alguém (por exemplo, exibir uma visualização dos últimos 20), classificados por seu "id", então criei um índice:
INDEX from_id (from, id)
O "id" no final desse índice é redundante porque termina com a chave primária?
Se sim, por quê?
No InnoDB , todo índice "secundário" (ou seja, índice diferente de "PRIMARY") adiciona automaticamente as colunas do PK.
Estes são 'idênticos':
Você poderia até fazer
Este combo é benéfico quando
id
éAUTO_INCREMENT
, mas você costuma fazer um range emfrom
. Agora as linhas são "agrupadas" juntas, sendo assim mais eficiente para buscar. Enquanto isso,INDEX(id)
continuaAUTO_INCREMENT
feliz - já que precisa saber de onde parou.Suponho que você esteja fazendo: