Come mysql aggiunge un indice a una tabella esistente

Come mysql aggiunge un indice a una tabella esistente
Un indice, altrimenti noto come indici, si riferisce a una struttura di dati che migliora le velocità di recupero dei dati in una tabella MySQL. Se una tabella non ha un indice, l'esecuzione di una query richiede a MySQL di scansionare tutte le righe fino a quando non trova le informazioni richieste. Se la tabella ha molti record, questo processo richiederà molto tempo per essere completato, influenzando significativamente le prestazioni del database.

Questo tutorial ti mostrerà come creare un indice su una tabella MySQL per tabelle sia esistenti che per.

Prima di poter eseguire query e creare indici, guardiamo alcuni concetti di indice MySQL.

Tipi di indici MySQL

MySQL supporta due tipi di indici:

  1. Un indice primario o cluster
  2. Indice secondario

MySQL crea automaticamente un indice, chiamato primario, ogni volta che creiamo una tabella con una chiave primaria. A seconda del motore del database, se la chiave primaria o unica univoca non è disponibile in una tabella, MySQL può creare una chiave nascosta sulla colonna con valori ID.

L'indice principale creato da MySQL è archiviato insieme ai dati nella stessa tabella. Altri indici che esistono all'interno di una tabella a parte l'indice primario sono noti come indici secondari.

Come aggiungere un indice a una tabella esistente

Sebbene MySQL consigli di aggiungere un indice durante la creazione della tabella, ci sono alcuni casi in cui potrebbe essere necessario aggiungere un indice a una tabella esistente, come in una colonna regolarmente accessibile.

Per aggiungere un indice a una tabella esistente, possiamo usare l'alter query.

Prendiamo un database di esempio con le tabelle come mostrato nella query seguente:

Crea database se non esiste mysql_indices;
Usa mysql_indices;
Creare trekks da tavolo (
id int auto_increment chiave primaria,
cpt_name
Varchar (255) non null,
nave
Varchar (255) non null
);
INSERT IN TREKS (CPT_NAME, SHIP)
Valori ('Carol Freeman', 'USS Cerritos'),
("Christopher Pike", "USS Discovery"),
("Jean-Luc Picard", "USS Enterprise"),
('James T. Kirk "," USS Enterprise "),
("Jonathan Archer", "USS Enterprise");

Nell'esempio sopra, MySQL creerà una chiave indice usando la colonna ID perché è specificata come la chiave primaria.

Puoi verificarlo usando la query:

Mostra l'indice dai trekking;

Per creare un indice personalizzato, utilizzare l'alter query come:

Alter tabella Treks Aggiungi indice (cpt_name);

Nell'esempio sopra, utilizziamo CPT_NAME come seconda chiave primaria. Per mostrare gli indici, utilizzare la query:

Se non specificato, MySQL predefinirà qualsiasi indice come b-albero. Altri tipi di indice supportati includono hash e full text.

Il tipo di indice dipenderà dal motore di archiviazione per la tabella specificata.

Per creare un indice per una colonna o un elenco di colonne, utilizziamo la query di Crea Index. Ad esempio, per creare un indice per la "Ship: Colonna, possiamo fare:

Creare indice ship_index su treks (nave);

Se eseguiamo la query dell'indice dello spettacolo sulla tabella, dovremmo vedere un indice chiamato "Ship_index" sulla colonna "Ship".

Come aggiungere un indice a una nuova tabella

Il modo consigliato è quello di creare un indice o indici durante la creazione di una tabella. Per fare ciò, specificare le colonne da utilizzare come indici all'interno della query Index ().

Iniziamo lasciando cadere la tabella Treks nell'esempio precedente:

Drop table Trekks;

Successivamente, ricreiamo la tabella e specifichiamo l'indice durante la creazione. Una domanda di esempio è:

Creare trekks da tavolo (
id int auto_increment chiave primaria,
cpt_name
Varchar (255) non null,
nave
Varchar (255) non null,
Indice (nave)
);
INSERT IN TREKS (CPT_NAME, SHIP)
Valori ('Carol Freeman', 'USS Cerritos'),
("Christopher Pike", "USS Discovery"),
("Jean-Luc Picard", "USS Enterprise"),
('James T. Kirk "," USS Enterprise "),
("Jonathan Archer", "USS Enterprise");

Nella query di esempio sopra, aggiungiamo la colonna della nave come indice durante la creazione della tabella. Poiché l'ID è la chiave principale, MySQL lo aggiunge automaticamente come un indice.

Mostra l'indice dai trekking;

Conclusione

In questo tutorial, hai imparato come aggiungere un indice a una tabella esistente, aggiungere un indice per una colonna e creare un indice durante la creazione della tabella.