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 elMYIarchivo. -
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".