Ambos atributos são características essenciais na maioria das tabelas. Da maneira mais simples possível, podemos dizer que:

Chave primária: É um atributo dado a um campo único na tabela. Esse campo servirá para identificar a determinada linha e não poderá ter valores repetidos.

Exemplo 1) Tabela “clientes” com os campos: nome_cliente, data_de_nascimento e cpf_cliente. O campo “cpf_cliente” pode ser definido como chave primária, pois não exitem duas pessoas com o mesmo CPF.

Você também pode gerar o valor da chave primária como auto-incremento.

Exemplo 2) Tabela “produtos” com os campos: idproduto, nome_produto, valor_produto. Poderíamos definir o campo “idproduto” como chave primária com auto-incremento, assim seria gerado um número diferente (automaticamente) para cada registro da tabela.

Índice: É um atributo para aumentar a velocidade na busca de uma tabela.

Exemplo 3) Tabela “cidades” com os campos idcidade,cidade e estado. No campo estado você permitira apenas a sigla do estado e o definiria como Índice. Dessa forma, toda vez que alguem fosse fazer uma busca por todas as cidades do estado, essa busca seria mais rápida.

Você define como índice o campo que você vai utilizar como parâmetro na busca, porém, é interessante que esses campos não tenham muitos caracteres, porque ao utilizar uma chave primária, o tamanho da tabela aumenta consideravelmente.

Use esse recurso com sabedoria. 🙂