Mysql
 sql >> Database >  >> RDS >> Mysql

Come creare un indice in MySQL

Gli indici MySQL semplificano le ricerche e migliorano la velocità delle query SQL. Ecco come creare un indice in MySQL per migliorare le prestazioni del database, utilizzando l'istruzione MySQL CREATE INDEX.

Come funziona l'indicizzazione in MySQL

In genere, quando si esegue una query SQL con una clausola WHERE o altri tipi di ricerche come JOINS, MySQL deve eseguire la scansione di tutti i record nella tabella per trovare le righe corrispondenti. Nel caso in cui le tue tabelle abbiano milioni di righe, questo può richiedere molto tempo e rallentare notevolmente le tue query SQL.

MySQL Indexes velocizza le tue query SQL mantenendo i valori delle colonne indicizzate in una struttura ad albero B ottimizzata per le ricerche e la corrispondenza. Quindi gli indici facilitano la ricerca rapida di righe che corrispondono a uno o più valori.

Per impostazione predefinita, MySQL crea un indice per ogni colonna di chiave primaria nel database.

Bonus Leggi:Come creare stored procedure in MySQL

Come creare un indice in MySQL

Ecco i passaggi per creare l'indice in MySQL. Puoi creare un indice al momento della creazione della tabella o aggiungerlo in seguito. Esamineremo entrambi questi approcci.

Come creare un indice MySQL durante la creazione della tabella

Ecco la sintassi per creare l'indice durante la creazione della tabella

CREATE TABLE table_name(
   column_definitions,
   INDEX (list_of_columns) 
);

Nella query precedente, nome_tabella è la tua tabella da creare e column_definitions è l'elenco delle colonne e delle definizioni.

INDICE(lista_di_colonne) è dove crei l'indice MySQL. L'indice verrà creato per l'elenco di colonne separate da virgole citate come list_of_columns

Bonus Leggi:Come creare utenti in MySQL

Ecco un esempio.

CREATE TABLE orders(
   order_id INT PRIMARY KEY,
   sale INT NOT NULL,
   product_id INT NOT NULL,
   product_name VARCHAR(10),
   INDEX (product_id) 
);

Nella query precedente, abbiamo creato l'indice per id_prodotto colonna.

Ecco un esempio di come creare un indice utilizzando più colonne.

CREATE TABLE orders(
   order_id INT PRIMARY KEY,
   sale INT NOT NULL,
   product_id INT NOT NULL,
   product_name VARCHAR(10),
   INDEX (product_id, order_id) 
);

Nella query precedente, abbiamo creato un indice per più colonne product_id, order_id

Bonus Leggi:Come creare database in MySQL

Come aggiungere un indice alla colonna nella tabella

Supponiamo di voler aggiungere l'indice per la colonna o il set di colonne, quindi utilizzare l'istruzione CREATE INDEX. Ecco la sintassi dell'istruzione CREATE INDEX

CREATE INDEX index_name ON table_name (column_list)

Nella query precedente, specifichiamo il nome dell'indice, la tabella per la quale è necessario creare l'indice e l'elenco delle colonne da includere nell'indicizzazione.

Ecco un esempio per aggiungere un nuovo indice per la colonna nome_prodotto negli ordini precedenti tabella

CREATE INDEX prod_name_index ON orders (product_name);

Per visualizzare gli indici aggiunti a una tabella, è possibile utilizzare l'istruzione SHOW INDEXES. Ecco la sintassi di SHOW INDEXES

SHOW INDEXES from table_name;

Ecco un esempio per visualizzare gli indici da ordini tabella
SHOW INDEXES from orders;

Si spera che l'articolo sopra ti aiuti a creare un indice in MySQL.

Ubiq semplifica la visualizzazione dei dati in pochi minuti e il monitoraggio in dashboard in tempo reale. Provalo oggi!