Sobes.tech
Junior

Quali sono i tipi di indici nei database?

sobes.tech AI

Risposta dell'AI

I principali tipi di indici nei database:

  1. B-tree (B+tree):

    • Il tipo più comune.
    • Adatto per una vasta gamma di operazioni: ricerca per intervallo, corrispondenza esatta, ordinamento.
    • Utilizzato di default in molti DBMS (MySQL, PostgreSQL, Oracle).
  2. Indici hash:

    • Basati su una tabella hash.
    • Molto veloci per ricerche di corrispondenza esatta (=).
    • Non adatti per ricerche per intervallo (BETWEEN, <, >), ordinamento (ORDER BY) o ricerca per pattern (LIKE).
  3. Indici di testo completo:

    • Progettati per la ricerca in campi di testo (BLOB, TEXT).
    • Permettono di cercare parole o frasi, considerare sinonimi e effettuare analisi morfologiche.
    • Esempi: MATCH...AGAINST in MySQL/MariaDB, tsvector/tsquery in PostgreSQL.
  4. Indici spaziali (R-tree):

    • Utilizzati per indicizzare dati geografici o spaziali.
    • Permettono di trovare oggetti in aree o limiti specifici in modo efficiente.
  5. Indici bitmap (mappa di bit):

    • Usati in alcuni DBMS (ad esempio, Oracle, PostgreSQL).
    • Adatti per campi con bassa cardinalità (pochi valori unici, ad esempio, genere, stato: attivo/inattivo).
    • Possono essere molto efficienti per query complesse con operazioni AND e OR.
  6. Indice clusterizzato:

    • Influisce sull'ordine fisico di memorizzazione delle righe della tabella.
    • Può esserci solo un indice clusterizzato per tabella.
    • Spesso usato per la chiave primaria.
  7. Indice non clusterizzato:

    • Non determina l'ordine fisico delle righe.
    • Contiene puntatori alla posizione fisica delle righe di dati.
    • Una tabella può avere più indici non clusterizzati.
  8. Indice coprente (covering):

    • Un indice che contiene tutte le colonne necessarie per eseguire una query, comprese le colonne in SELECT, le condizioni in WHERE e ORDER BY.
    • Permette al DBMS di non accedere ai dati della tabella, accelerando l'esecuzione della query.
  9. Indice funzionale (per espressione):

    • Indice costruito sul risultato di una funzione o espressione su una o più colonne.
    • Permette di indicizzare valori calcolati.

Nella scelta del tipo di indice, si considera il tipo di dati, la frequenza e la natura delle query (ricerca per valore esatto, intervallo, ordinamento, ricerca full-text, ecc.) e la cardinalità della colonna.