I tipi di indici degli Storage Engine

Questo articolo si riferisce alla definizione index_type usata per gli indici indice, cioè BTREE, HASH o RTREE.

Per ulteriori informazioni sui tipi degli indici in generale, come le chiavi primarie, gli indici univoci, etc, si veda Guida base sugli indici.

Storage EngineIndici consentiti
MyISAMBTREE, RTREE
InnoDBBTREE
MEMORY/HEAPHASH, BTREE
NDBBTREE, HASH

Comprendere i tipi di indici e le strutture dati può aiutare a predire quali tipi di query funzioneranno meglio sugli Storage Engine che usano tali strutture dati e indici, in articolare lo Storage Engine MEMORY che permette di scegliere tra indici BTREE e HASH.

Indici B-tree

Gli indici B-tree vengono usati per la comparazione tra colonne con gli operatori >, >=, =, >=, < e BETWEEN, nonché per le comparazioni LIKE che iniziano con una costante.

Per esempio, la query SELECT * FROM Employees WHERE First_Name LIKE 'Maria%'; può avvalersi di un indice B-tree, mentre SELECT * FROM Employees WHERE First_Name LIKE '%aria'; non può.

Gli indici B-tree permettono anche di usare un prefisso dell'indice per la ricerca.

Indici Hash

Gli indici Hash, per contro, possono essere utilizzati solo per le comparazioni di uguaglianza, cioè con gli operatori = e <=>. Non possono essere utilizzati per l'ordinamento e non forniscono informazioni all'ottimizzatore su quante righe esistono tra due valori.

Gli indici Hash non permettono l'uso di un prefisso degli indici - è possibile usare solo gli indici per intero.

Indici R-tree

Si veda SPATIAL per ulteriori informazioni.

Commenti

Sto caricando i commenti......
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.