Mostrar índices para tabla o base de datos en MySQL

Mehvish Ashiq 20 junio 2023
  1. ¿Qué es el índice en MySQL?
  2. Importancia de los índices en MySQL
  3. Use MOSTRAR ÍNDICES para enumerar todos los índices de una tabla o base de datos en MySQL
  4. Use SELECCIONAR DISTINTO para listar todos los índices para todas las tablas de un esquema (base de datos) en MySQL
  5. Use la tabla STATISTICS para listar todos los índices para todas las tablas de todos los esquemas (bases de datos) en MySQL
Mostrar índices para tabla o base 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.

mostrar índices para una tabla o una base de datos en mysql - demostración de í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:

mostrar índices para una tabla o una base de datos en mysql - búsqueda de tabla no indexada

Búsqueda de una tabla indexada:

mostrar índices para una tabla o una base de datos en mysql - búsqueda de 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;
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Artículo relacionado - MySQL Index