Come e quando creare un indice in mysql

Come e quando creare un indice in mysql
Quando si tratta di ottimizzazione delle prestazioni per i database MySQL, la creazione di indici è uno dei modi migliori. Gli indici SQL aiutano a migliorare le prestazioni del database fornendo un accesso rapido ai dati archiviati nel database.

Un indice SQL non è così diverso da un normale indice del libro con un elenco di informazioni curate e dove puoi trovarle.

In questo tutorial, discuteremo quando creare un indice SQL perché, sebbene gli indici possano aiutare a ottimizzare le prestazioni, possono anche causare prestazioni lente e altri impatti negativi. Discuteremo anche di come creare un indice utilizzando un database reale.

Iniziamo:

Quando creare un indice in mysql?

Sfortunatamente, non ho una risposta diretta per quando dovresti creare un indice. Tuttavia, alcuni scenari e fattori possono influenzare la creazione di un indice. È bene notare che potresti dover fare alcuni compromessi durante la creazione di un indice

  1. Alta accessibilità: Se si accede regolarmente una tabella o una colonna, puoi aumentare le sue prestazioni creando un indice.
  2. Misurare: La dimensione dei dati memorizzati in una tabella o una colonna può anche svolgere un ruolo nel decidere quando è necessario un indice. Una tavola grande può beneficiare di più degli indici di una tabella più piccola.
  3. Chiave indice: Anche il tipo di dati della chiave interi è un fattore. Ad esempio, un numero intero è una chiave indice molto migliore per le sue dimensioni ridotte.
  4. Operazioni CRUD: Se si dispone di una tabella o di una colonna con un numero più elevato di operazioni CRUD, l'indicizzazione di quella tabella o colonna potrebbe non essere utile e potrebbe avere un impatto negativo sulle prestazioni del database.
  5. Dimensione del database: L'indicizzazione è una struttura di dati che occuperà spazio sul database, che può essere un fattore, specialmente in database già grandi.

Quanto sopra sono alcuni dei concetti chiave che possono entrare in gioco quando decidono quando creare un indice di database.

Se desideri saperne di più su come MySQL utilizza gli indici, considera di leggere la risorsa fornita di seguito:

https: // dev.mysql.com/doc/refman/8.0/en/mysql-indice.html

Uso di base di MySQL indicizza

Per impostazione predefinita, una volta creata una tabella con una chiave primaria, MySQL crea automaticamente un indice speciale chiamato primario, memorizzato con i dati. Questo è in genere noto come indice cluster.

Per creare un indice in MySQL, possiamo usare la sintassi mostrata di seguito:

Crea index_name su tbl_name (cols);

Iniziamo chiamando la clausola Crea Index, seguita dal nome dell'indice che desideriamo creare. Quindi specifichiamo la tabella in cui risiede l'indice e infine le colonne.

È inoltre possibile creare un indice durante la creazione di una tabella, come mostrato nella sintassi seguente:

Crea tabella tbl_name (col1, col2, col3, indice (col1, col2));

NOTA: Il tipo di indice MySQL predefinito è un BTREE a meno che non sia esplicitamente specificato.

Esempio di utilizzo

Usando un esempio, permettimi di illustrare come possiamo creare un indice per la tabella specifica per migliorare le prestazioni.

Userò la tabella del film nel database dei dipendenti. Puoi trovare la risorsa dalla pagina delle risorse qui sotto:

https: // dev.mysql.com/doc/indice-altro.html

Innanzitutto, vediamo il processo dietro la scena che Mysql utilizza per elaborare una semplice istruzione selezionata in cui il genere è uguale a F.

Spiega Seleziona emp_no, first_name, last_name dai dipendenti dove genere = 'f';

Date le dimensioni della tabella e dei dati interrogati, la scansione di oltre 200.000 righe non è molto efficiente. In tal caso, possiamo ridurre questo valore creando un indice.

Per creare un indice, possiamo fare:

Crea sesso di indice sui dipendenti (genere);

Una volta creato l'indice, MySQL scansionerà i valori come mostrato nell'output sopra.

Conclusione

Spero che questo tutorial ti abbia dato una comprensione più profonda dell'uso di indici MySQL per migliorare le prestazioni del database.

Grazie per aver letto.