Seleccionar página

Consultar parámetros de una columna en todas las tablas de tu Base de datos MySql

por | Nov 27, 2019 | MySQL

Consultar parámetros de una columna en todas las tablas de tu Base de datos MySql:

Uno de los motivos por los que a veces una consulta a varias tablas unidas por una JOIN sea lenta a pesar de haber creado los índices correctamente, es que la clave foránea por la que se hace la JOIN no tenga el mismo tipo de columna o charset en ambas tablas. Esto provoca un «full scan» de la tabla y el consiguiente retardo en la consulta.

Por ello, es importante mantener el mismo tipo de columna y el charset de aquellas columnas que se repiten en las tablas de tu base de datos.

Para poder saber de un solo vistazo cuales son los parámetros de una columna en todas las tablas de tu Mysql se puede ejecutar lo siguiente:

mysql> use information_schema

mysql> select TABLE_NAME, CHARACTER_SET_NAME, COLLATION_NAME, COLUMN_TYPE from columns where COLUMN_NAME='serial_number';
+------------------+----------------------+----------------------+--------------+
| TABLE_NAME       | CHARACTER_SET_NAME   | COLLATION_NAME       | COLUMN_TYPE  |
+------------------+----------------------+----------------------+--------------+
| tabla_1          | utf8mb4              | utf8mb4_0900_ai_ci   | varchar(45)  |
| tabla_2          | utf8                 | utf8_general_ci      | varchar(45)  |
| tabla_3          | utf8                 | utf8_general_ci      | varchar(45)  |
| tabla_4          | utf8mb4              | utf8mb4_0900_ai_ci   | varchar(45)  |
| tabla_5          | utf8mb4              | utf8mb4_0900_ai_ci   | varchar(45)  |
| tabla_6          | utf8                 | utf8_general_ci      | varchar(45)  |
| tabla_7          | latin1               | latin1_swedish_ci    | varchar(255) |
| tabla_8          | utf8                 | utf8_general_ci      | varchar(45)  |
| tabla_9          | utf8                 | utf8_general_ci      | varchar(45)  |
+------------------+----------------------+----------------------+--------------+

Viendo el resultado, lo lógico sería hacer un ALTER  de «tabla_7» para cambiar el charset de la columna «serial_number» a «utf8» y su tipo a VARCHAR(45), manteniendo la concordancia entre los campos  «serial_number» de mi BD

 

Comparte este post si te ha resultado útil, así quizás puedas ayudar a alguien que lo necesite.

¡Gracias por tu difusión!

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Blog de Neodoo Microsystems
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles. Puedes encontrar más información en nuestra Política de privacidad y Política de cookies.