Entrada

MySQL 馃惉 : Funciones de Informaci贸n

MySQL provee una serie de funciones de informaci贸n que son esenciales para obtener detalles sobre el servidor y estructuras de bases de datos, tablas, columnas y otros objetos, as铆 como para consultar el estado y rendimiento del servidor. Estas funciones son 煤tiles para conocer el contexto de la bse de datos en uso y del servidor.

CHARSET

La funci贸n CHARSET() nos devuelve el conjunto de caracteres del argumento de la cadena proporcionada:

1
SELECT CHARSET('abc');

El resultado puede ser algo como lo siguiente:

1
2
3
4
5
+----------------+
| CHARSET('abc') |
+----------------+
| utf8mb4        |
+----------------+

VERSION

La funci贸n VERSION() nos devuelve una cadena que indica la versi贸n del servidor MySQL:

1
SELECT VERSION();

El resultado puede ser algo como lo siguiente:

1
2
3
4
5
+-----------+
| VERSION() |
+-----------+
| 8.0.27    |
+-----------+

BECHMARK

La funci贸n BECHMARK() permite medir el tiempo de ejecuci贸n de una expresi贸n, 煤til para medir el rendimiento de ciertas consultas:

1
SELECT BECHMARK(1000, SHA1('test'));
mysql> SELECT BENCHMARK(1000000, SHA1('test'));
+----------------------------------+
| BENCHMARK(1000000, SHA1('test')) |
+----------------------------------+
|                                0 |
+----------------------------------+
1 row in set (1.65 sec)
mysql>
mysql> SELECT BENCHMARK(10000000, SHA1('test'));
+-----------------------------------+
| BENCHMARK(10000000, SHA1('test')) |
+-----------------------------------+
|                                 0 |
+-----------------------------------+
1 row in set (16.63 sec)

Base de Datos Especial (INFORMATION_SCHEMA)

Aunque no es una funci贸n espec铆fica, MySQL tiene una base de datos especial llamada INFORMATION_SCHEMA, que contiene varias vistas que proporcionan informaci贸n sobre las bases de datos, tablas, columnas y otros objetos del sistema.

Ejemplos de uso

  1. Obtener las tablas de una base de datos:
1
SELECT table_name FROM information_schema.tables WHERE table_schema = 'mysql';

La consulta anterior nos mostrar铆a un resultado como el siguiente:

Mostrar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
+------------------------------------------------------+
| TABLE_NAME                                           |
+------------------------------------------------------+
| columns_priv                                         |
| component                                            |
| db                                                   |
| default_roles                                        |
| engine_cost                                          |
| func                                                 |
| general_log                                          |
| global_grants                                        |
| gtid_executed                                        |
| help_category                                        |
| help_keyword                                         |
| help_relation                                        |
| help_topic                                           |
| innodb_index_stats                                   |
| innodb_table_stats                                   |
| ndb_binlog_index                                     |
| password_history                                     |
| plugin                                               |
| procs_priv                                           |
| proxies_priv                                         |
| replication_asynchronous_connection_failover         |
| replication_asynchronous_connection_failover_managed |
| replication_group_configuration_version              |
| replication_group_member_actions                     |
| role_edges                                           |
| server_cost                                          |
| servers                                              |
| slave_master_info                                    |
| slave_relay_log_info                                 |
| slave_worker_info                                    |
| slow_log                                             |
| tables_priv                                          |
| time_zone                                            |
| time_zone_leap_second                                |
| time_zone_name                                       |
| time_zone_transition                                 |
| time_zone_transition_type                            |
| user                                                 |
+------------------------------------------------------+
  1. Obtener las columnas de una tabla
1
SELECT column_name FROM information_schema.columns WHERE table_name = '<table_name>';

En la consulta anterior debemos remplazar <table_name> por el nombre de la tabla de nuestro inter茅s y esa tabla debe existir en alguna base de datos en el servidor.

Mi lema es

Esta entrada est谩 licenciada bajo CC BY 4.0 por el autor.