INDICI

MySQL utilizza gli indici di tipo

  • PRIMARY KEY
  • UNIQUE
  • INDEX
  • FULLTEXT

per

  • garantire l’integrità dei dati
  • rendere più veloci le operazioni in presenza della clausola WHERE.

CREATE TABLE

Quando si crea una tabella si aggiungono anche le definizioni degli indici

PRIMARY KEY

Uno o più campi sono la chiave primaria per la tabella

nome_campo tipo_campo PRIMARY KEY
PRIMARY KEY (nome_campo)
PRIMARY KEY (elenco_campi)
UNIQUE

Non sono ammessi valori duplicati per uno o più campi

UNIQUE(...)
UNIQUE INDEX(...)
UNIQUE KEY(...)
INDEX
INDEX(...)
KEY(...)
FOREIGN KEY

Chiave esterna collegata a …

FOREIGN KEY (elenco_campi) REFERENCES nome_tabella(elenco_campi)

SHOW INDEXES

SHOW INDEXES FROM nome_tabella

ALTER TABLE

Manipolare gli indici di una tabella dopo averla creata

ADD INDEX
ALTER TABLE nome_tabella ADD PRIMARY KEY (elenco_campi)
ALTER TABLE nome_tabella ADD INDEX (elenco_campi)
ALTER TABLE nome_tabella ADD KEY (elenco_campi)
ALTER TABLE nome_tabella ADD UNIQUE INDEX (elenco_campi)
ALTER TABLE nome_tabella ADD UNIQUE KEY (elenco_campi)
ALTER TABLE nome_tabella ADD FOREIGN KEY (elenco_campi)
DROP INDEX
ALTER TABLE nome_tabella DROP PRIMARY KEY
ALTER TABLE nome_tabella DROP INDEX nome_campo
DISABLE KEYS
ALTER TABLE nome_tabella DISABLE KEYS
ENABLE KEYS
ALTER TABLE nome_tabella ENABLE KEYS

CREATE INDEX

Si può usare al posto di ALTER TABLE.
Non può creare PRIMARY KEY

CREATE INDEX nome_indice ON nome_tabella(elenco_campi)
CREATE UNIQUE INDEX nome_indice ON nome_tabella(elenco_campi)