La base de datos almacena el valor indexado como un B-Tree
y el puntero de registro como un B-Tree
valor.
Cada vez que busca un registro que contiene un determinado valor de una columna indexada, el motor localiza la clave que contiene este valor en el B-Tree
, recupera el puntero al registro y obtiene el registro.
Qué es exactamente un "puntero de registro", depende del motor de almacenamiento.
-
En
MyISAM
, el puntero del registro es un desplazamiento del registro en elMYI
archivo. -
En
InnoDB
, el puntero de registro es el valor de laPRIMARY KEY
.
En InnoDB
, la tabla en sí es un B-Tree
con una PRIMARY KEY
como un B-Tree
llave. Esto es lo que se llama un "índice agrupado" o "tabla organizada por índice". En este caso, todos los demás campos se almacenan como un B-Tree
valor.
En MyISAM
, los registros se almacenan sin ningún orden especial. Esto se llama "almacenamiento en montón".