Ir al contenido

Usando Tablas Temporales en MariaDB

·550 palabras·3 mins
Bases de Datos
Alejandro Duarte
Autor
Alejandro Duarte
Alejandro Duarte es un Ingeniero de Software, escritor publicado y galardonado. Actualmente, trabaja para MariaDB plc como Ingeniero de Relaciones con Desarrolladores (Developer Relations Engineer). Comenz贸 su trayectoria en programaci贸n a los 13 a帽os con BASIC en una rudimentaria pantalla negra, para lugo r谩pidamente transitar a C, C++ y Java durante sus a帽os acad茅micos en la Universidad Nacional de Colombia. Traslad谩ndose primero al Reino Unido y luego a Finlandia, Alejandro profundiz贸 su participaci贸n en la comunidad de c贸digo abierto. Es reconocido en los c铆rculos de Java, acreditado con art铆culos y videos que acumulan millones de vistas, y presentaciones en eventos internacionales.

Exploremos el funcionamiento de las tablas temporales en MariaDB. Primero, tenemos que conectarnos al servidor. Por ejemplo (usa tus propios detalles de conexi贸n):

mariadb -h 127.0.0.1 -u root -p"RootPassword!" --database demo

Para resaltar un punto antes de continuar, vamos a crear una tabla est谩ndar (permanente). As铆 se hace:

CREATE TABLE t (
    c INT
);

Esta tabla, t, persistir谩 en la base de datos incluso despu茅s de salir del cliente:

exit

Cuando nos reconectamos y revisamos las tablas usando SHOW TABLES;, veremos la tabla t:

mariadb -h 127.0.0.1 -u root -p"RootPassword!" --database demo
SHOW TABLES;
+----------------+
| Tables_in_demo |
+----------------+
| t              |
+----------------+

Claro, todo esto es bastante obvio. Pero ahora, recreemos esta tabla e intentemos algo diferente:

CREATE OR REPLACE TEMPORARY TABLE t (
    c INT
);

Observa la palabra clave TEMPORARY. Despu茅s de crear esta tabla, si ejecutamos SHOW TABLES;, aparecer谩 en la lista. Podemos insertar datos en ella, consultarla, unirla con otras tablas. Se comporta como una tabla normal durante la sesi贸n actual. Sin embargo, si salimos del cliente, luego nos reconectamos y realizamos SHOW TABLES; nuevamente, la tabla temporal t no aparecer谩 listada. Una tabla temporal s贸lo existe durante la duraci贸n de la sesi贸n en la que fue creada y otras sesiones no podr谩n verla.

Caso de Uso para Tablas Temporales
#

Las tablas temporales son bastante 煤tiles para operaciones transitorias de datos. Por ejemplo, considera una tabla llamada products en nuestra base de datos:

CREATE TABLE products (
  id INT NOT NULL AUTO_INCREMENT,
  code VARCHAR(100) NOT NULL,
  name VARCHAR(250) NOT NULL,
  description TEXT DEFAULT NULL,
  PRIMARY KEY (id),
  UNIQUE KEY code (code)
)

Podemos crear una tabla temporal que imite la estructura de products:

CREATE TEMPORARY TABLE t LIKE products;

Podemos confirmar esto ejecutando:

DESCRIBE t;
+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| id          | int(11)      | NO   | PRI | NULL    | auto_increment |
| code        | varchar(100) | NO   | UNI | NULL    |                |
| name        | varchar(250) | NO   |     | NULL    |                |
| description | text         | YES  |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+

Inicialmente, t estar谩 vac铆a. Sin embargo, supongamos que queremos transferir algunos datos de products a t. Supongamos que solo queremos incluir productos que contengan el n煤mero 0 en su c贸digo:

INSERT INTO t
SELECT * FROM products
WHERE code LIKE '%0%';

Despu茅s de ejecutar este comando, si consultamos la tabla temporal t:

SELECT * FROM t;
+----+--------+------------------+---------------------------------------------------+
| id | code   | name             | description                                       |
+----+--------+------------------+---------------------------------------------------+
|  1 | BG2024 | BugBlaster       | Eradicates software bugs with a single scan.      |
|  3 | FW001  | FireWhale        | An oversized, comprehensive firewall solution.    |
|  4 | CLD404 | CloudNine Finder | Find your way back from cloud outages and errors. |
+----+--------+------------------+---------------------------------------------------+

Vemos los datos filtrados.

Conclusi贸n
#

Las tablas temporales ofrecen una forma poderosa de manejar datos para procesamiento temporal sin afectar el almacenamiento de datos persistente. Son particularmente 煤tiles en escenarios donde los datos necesitan ser manipulados o transformados temporalmente. Puedes usar tablas permanentes para este tipo de manipulaci贸n de datos, pero las tablas temporales son 煤tiles cuando necesitas limpieza autom谩tica, reducci贸n del riesgo de conflictos de nombres, aislamiento y seguridad, y gesti贸n de recursos para el mejor rendimiento de consultas.

Relacionados

Alta Disponibilidad y Resiliencia de Bases de Datos con MaxScale
·1464 palabras·7 mins
Bases de Datos
Las aplicaciones cr铆ticas de negocio requieren alta disponibilidad. El objetivo de la alta disponibilidad es proporcionar a los usuarios acceso constante a servicios o recursos, minimizando las posibilidades de interrupci贸n.
驴Por Qu茅 Necesitamos Bases de Datos y SQL?
·1708 palabras·9 mins
Bases de Datos
SQL tiene una larga y probada historia de 茅xito. Ha sobrevivido a todo el alboroto alrededor de NoSQL.
An谩lisis de Datos R谩pido con MariaDB ColumnStore
·1303 palabras·7 mins
Bases de Datos
Tiempos de consulta lentos en bases de datos grandes son un dolor de cabeza com煤n.