Mostrar índices para tabla o base de datos en MySQL
- ¿Qué es el índice en MySQL?
- Importancia de los índices en MySQL
-
Use
MOSTRAR ÍNDICES
para enumerar todos los índices de una tabla o base de datos en MySQL -
Use
SELECCIONAR DISTINTO
para listar todos los índices para todas las tablas de un esquema (base de datos) en MySQL -
Use la tabla
STATISTICS
para listar todos los índices para todas las tablas de todos los esquemas (bases de datos) en MySQL
El artículo de hoy enseña cómo mostrar índices para una tabla o una base de datos en MySQL. Aprenderemos cómo obtener índices de una o varias tablas dentro de una base de datos o de todas las bases de datos.
Usaremos los comandos MOSTRAR ÍNDICES
, MOSTRAR ÍNDICE EXTENDIDO
, SELECCIONAR DISTINTOS
y la tabla ESTADÍSTICAS
para obtener los índices.
¿Qué es el índice en MySQL?
Una estructura de base de datos, muy probablemente un B-Tree que podemos usar para mejorar el rendimiento de la actividad de la base de datos, se denomina índice. Una tabla dentro de una base de datos puede tener uno o varios índices asociados con esa tabla en particular.
Los índices recuperan los datos necesarios de varias columnas, lo que aumenta la eficiencia de las consultas de MySQL. La consulta de MySQL especificada inspeccionará cada fila (un registro) de una tabla para obtener los datos específicos si omitimos usar la indexación en MySQL.
Cada vez que creamos una tabla con una clave única o primaria, el índice especial se crea automáticamente utilizando una expresión de campo llamada PRIMARY
y conocida como índice agrupado.
Todos los índices excepto el PRIMARIO
son índices secundarios; podemos llamarlos índices no agrupados.
Por ejemplo, tenemos una tabla de estudiantes
y se crea un índice en la columna ID
. Aquí, el índice contendrá una lista ordenada de los valores de identificación de los estudiantes en una tabla donde cada valor de la lista está acompañado por una referencia al registro en la tabla respectiva (que aquí es “estudiantes”) que tiene ese valor.
La siguiente es una demostración de lo que son los índices.
Importancia de los índices en MySQL
Veamos las siguientes dos presentaciones visuales para observar cómo se buscan las tablas indexadas y no indexadas utilizando la siguiente consulta.
SELECT * FROM students WHERE Gender = 'Male'
Búsqueda de una tabla no indexada:
Búsqueda de una tabla indexada:
Vea, los índices nos ayudan a recuperar solo los datos específicos, en lugar de deambular por todas las filas de una tabla.
Use MOSTRAR ÍNDICES
para enumerar todos los índices de una tabla o base de datos en MySQL
Podemos usar las siguientes consultas para obtener una lista de índices de una tabla específica o base de datos MySQL.
Mostrar índices de una tabla:
SHOW INDEXES FROM tableName;
La consulta anterior enumerará todos los índices de la tabla especificada en la base de datos actual que utilizará a través de use databaseName;
consulta.
Si no está utilizando ninguna base de datos, puede utilizar la siguiente consulta para obtener todos los índices de una tabla.
SHOW INDEX FROM tableName FROM databaseName;
Alternativamente, podemos usarlo de la siguiente manera.
SHOW INDEXES FROM tableName IN databaseName;
Recuerde que las CLAVES
y el ÍNDICE
son sinónimos de ÍNDICES
; del mismo modo, el IN
es sinónimo de FROM
. Por lo tanto, podemos utilizar estos sinónimos en MOSTRAR ÍNDICES
.
# The queries below can be used alternatively,
# and produce the same results.
SHOW INDEXES FROM tableName IN databaseName;
SHOW INDEX IN tableName FROM databaseName;
O
# The queries given below can be used alternatively,
# and produce the same results.
SHOW INDEXES FROM tableName IN databaseName;
SHOW KEYS FROM tableName IN databaseName;
Aprendimos varias formas de obtener una lista de índices de una tabla que creamos nosotros, como desarrolladores de bases de datos. Podemos usar la siguiente consulta para obtener todos los índices creados por un desarrollador de base de datos y la propia base de datos.
SHOW EXTENDED INDEX from databaseName.tableName;
Use SELECCIONAR DISTINTO
para listar todos los índices para todas las tablas de un esquema (base de datos) en MySQL
Podemos usar la siguiente consulta para obtener una lista de todos los índices de todas las tablas de una base de datos en particular. Podemos utilizar la tabla ESTADÍSTICAS
en ESQUEMA_INFORMACIÓN
.
Enumere todos los índices para todas las tablas dentro de un esquema particular:
# In the following query, you don't have to change anything except
# the value of `TABLE_SCHEMA` to get the table name accompanied
# with all indexes in that table.
SELECT DISTINCT
TABLE_NAME,
INDEX_NAME
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = 'your_schema_name';
Use la tabla STATISTICS
para listar todos los índices para todas las tablas de todos los esquemas (bases de datos) en MySQL
Podemos usar la siguiente consulta para acceder a todos los índices de todas las tablas de un esquema (también llamado Bases de datos).
USE INFORMATION_SCHEMA;
SELECT * FROM STATISTICS;