Vai al contenuto principale
Traduzione Beta Non Ufficiale

Questa pagina è stata tradotta da PageTurner AI (beta). Non ufficialmente approvata dal progetto. Hai trovato un errore? Segnala problema →

Utilizzo degli indici

Gli indici sono strutture dati che consentono al database di individuare righe senza scansionare l'intera tabella. Senza indice, una query deve esaminare ogni riga per trovare corrispondenze. Con un indice, il database può saltare direttamente alle righe rilevanti — riducendo drasticamente il numero di righe esaminate.

Gli indici accelerano le operazioni di lettura ma aggiungono overhead alle scritture (inserimenti, aggiornamenti, eliminazioni) poiché l'indice deve rimanere sincronizzato, quindi vanno creati con cautela e solo quando necessari.

Sono buoni candidati per gli indici le colonne usate frequentemente in clausole WHERE, join e ordinamenti. Quando si utilizzano più colonne come filtro, può essere utile creare un indice composito, ma considera che l'ordine delle colonne è importante — posiziona per prime quelle più selettive (con valori più univoci).

Analisi delle prestazioni delle query

La maggior parte dei database consente di ispezionare l'esecuzione di una query attraverso un piano di esecuzione. Comprendere questo piano aiuta a identificare indici mancanti e ottimizzare la costruzione delle query confrontando diverse modalità di recupero degli stessi dati.

CockroachDB

Use EXPLAIN ANALYZE (same syntax as PostgreSQL):

EXPLAIN ANALYZE SELECT * FROM "user" WHERE "firstName" = 'Timber';

Look for full scan (no index) vs scan with a specific index name.

Learn more

Definizione degli indici in TypeORM

TypeORM supporta la creazione di indici sulle colonne delle tabelle tramite il decoratore @Index.

import { Entity, PrimaryGeneratedColumn, Column, Index } from "typeorm"

@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number

@Column()
@Index()
email: string

@Column()
firstName: string
}

Per una panoramica completa sui diversi tipi di indice (univoco, spaziale, fulltext, concorrente e altri), consulta la guida Indici.

Un'indicizzazione corretta è spesso il miglioramento prestazionale più significativo applicabile — inizia analizzando le query più lente con gli strumenti per piani di esecuzione sopra descritti, poi aggiungi indici dove hanno maggiore impatto.