En las bases de datos, no nos interesa tener índices duplicados
para evitar el coste extra que implica actualizarlos (además del
espacio en disco). Por eso, deberemos tener en cuenta que si
creamos una foreign key, estamos también creando un índice sobre
dicha columna y por lo tanto, no es necesario crear otro índice:
Podemos verlo mediante las siguientes dos tablas, t2
tiene una foreign key sobre el segundo campo:
mysql> create table t1(id int primary key);
Query OK, 0 rows affected (0.08 sec)
mysql> create table t2 (id int primary key, id2 int, constraint k foreign key (id2) references t1(id));
Query OK, 0 rows affected (0.06 sec)
Insertamos unos datos de ejemplo:
mysql> insert into t1 values (1),(2);
Query OK, 2 rows affected (0.02 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> insert into t2 values (1,1),(2,1),(3,1),(4,2);
Query OK, 4 rows affected (0.03 sec)
Records: 4 …
[Lea más]