¿Qué es una base de datos?
Una base de datos es una colección organizada de información que se almacena y se puede consultar electrónicamente. Existen distintos tipos según cómo estructuran los datos:
- Relacionales: organizan la información en tablas con filas y columnas (MySQL, PostgreSQL, SQL Server).
- De documentos: almacenan registros como documentos flexibles, normalmente en JSON (MongoDB).
- Clave-valor: pares simples de clave e información asociada, optimizados para velocidad (Redis).
- De grafos: modelan relaciones complejas entre entidades (Neo4j).
- De series temporales: pensadas para datos con marca de tiempo, como métricas o sensores (InfluxDB).
Las bases de datos relacionales siguen siendo las más usadas en el mundo empresarial porque su modelo —tablas con filas (registros) y columnas (campos)— es intuitivo y muy eficiente para datos estructurados: usuarios, pedidos, transacciones, inventarios, etc.
Un sistema de gestión de bases de datos (o DBMS, por sus siglas en inglés) es el software que permite crear, modificar, consultar y administrar esa información. MySQL, PostgreSQL, Oracle, SQL Server y MongoDB son ejemplos de DBMS ampliamente usados hoy en día.
¿Qué es MySQL y por qué se volvió tan popular?
MySQL es un sistema de gestión de bases de datos relacionales de código abierto, creado en 1995 y mantenido actualmente por Oracle Corporation. Guarda la información en tablas de filas y columnas, se consulta con el lenguaje SQL y es la base de datos que usan WordPress, la mayoría de aplicaciones PHP y buena parte de la infraestructura web. Su popularidad se explica por cuatro razones concretas:
- Escalabilidad: maneja desde un blog con cien artículos hasta aplicaciones con millones de registros, y crece junto con las necesidades del proyecto.
- Robustez: tres décadas de uso en producción y un motor de almacenamiento, InnoDB, con transacciones ACID y recuperación automática tras un corte de energía.
- Costo cero de licencia: la edición Community es de código abierto y se puede usar en producción sin pagar, incluso con fines comerciales.
- Compatibilidad amplia: tiene conectores oficiales para C, Java, Python, PHP, Node.js y prácticamente cualquier lenguaje moderno, y está preinstalada en casi todos los planes de hosting del mercado.
Qué versión de MySQL usar en 2026
Oracle publica MySQL en dos ramas: versiones LTS (soporte a largo plazo), pensadas para producción, y versiones Innovation, que estrenan funciones y solo se mantienen hasta la siguiente. Este es el estado actual:
| Versión | Tipo | Publicada | Estado |
|---|---|---|---|
| MySQL 8.0 | LTS | Abril 2018 | Fuera de soporte extendido desde el 30 de abril de 2026 |
| MySQL 8.4 | LTS | Abril 2024 | Con soporte hasta abril de 2032 |
| MySQL 9.7 | LTS | Abril 2026 | Versión LTS vigente y recomendada para servidores nuevos |
| MySQL 26.7 | Innovation | Julio 2026 | Primera con numeración por calendario (año.mes) |
Dos consecuencias prácticas de esa tabla. La primera: si tu servidor sigue en MySQL 8.0, ya no recibe parches de seguridad y la actualización debería estar en el plan del trimestre. La segunda: desde la 9.7, la rama de innovación abandonó la numeración secuencial y pasó a nombrarse por año y mes, así que un número como "26.7" no indica un salto de dieciséis versiones, sino julio de 2026.
Para WordPress, la recomendación oficial del proyecto es MySQL 8.0 o superior, o MariaDB 10.11 o superior. Sigue arrancando sobre versiones más antiguas, pero esas ya no tienen mantenimiento.
MySQL, MariaDB y PostgreSQL: cuál elegir
Las tres son bases de datos relacionales de código abierto y las tres sirven para un sitio web, pero resuelven bien cosas distintas:
| Criterio | MySQL | MariaDB | PostgreSQL |
|---|---|---|---|
| Origen | Oracle, desde 2010 | Bifurcación de MySQL creada en 2009 por su autor original | Proyecto comunitario independiente |
| Compatibilidad con WordPress | Nativa, es la opción de referencia | Total, es lo que instalan muchos hostings | Requiere capas de compatibilidad, no soportado oficialmente |
| Cumplimiento del estándar SQL | Alto, con algunas particularidades propias | Similar a MySQL | El más estricto de los tres |
| Tipos de datos avanzados | JSON, geometría | JSON, geometría | JSON, arrays, tipos personalizados, búsqueda de texto completo avanzada |
| Consultas analíticas complejas | Correcto | Correcto | Su punto más fuerte |
| Presencia en hosting compartido | Muy alta | Muy alta | Baja |
La regla corta: para un sitio web con PHP o WordPress, MySQL o MariaDB indistintamente; para una aplicación con lógica de datos compleja o mucho análisis, PostgreSQL. Y un detalle que confunde a mucha gente: buena parte de los hostings compartidos que anuncian "MySQL" en realidad corren MariaDB, porque la compatibilidad a nivel de aplicación es prácticamente total.
Sentencias SQL esenciales que deberías conocer
Estas son las 16 sentencias que cubren la mayor parte del trabajo diario con MySQL, agrupadas por lo que hacen:
| Grupo | Sentencias | Para qué sirven |
|---|---|---|
| Consulta | SELECT, LIMIT, COUNT, GROUP BY, HAVING, UNION | Leer, contar, agrupar y combinar resultados |
| Modificación de datos | INSERT, UPDATE, DELETE, TRUNCATE | Agregar, cambiar y borrar registros |
| Estructura | CREATE, ALTER, DROP, RENAME | Crear y modificar tablas y bases de datos |
| Relaciones | JOIN (INNER, LEFT, RIGHT) | Combinar datos de varias tablas |
| Diagnóstico | EXPLAIN | Ver cómo resuelve MySQL una consulta y por qué tarda |
A continuación, cada una con un ejemplo ejecutable.
SELECT — Consultar datos
Recupera datos de una o varias tablas. Es, por lejos, la sentencia más usada.
SELECT * FROM employees; INSERT — Agregar registros
Añade nuevas filas de datos a una tabla existente.
INSERT INTO employees (first_name, last_name, salary)
VALUES ('John', 'Doe', 50000); UPDATE — Modificar registros
Actualiza datos ya existentes. Siempre usa una cláusula WHERE para evitar modificar toda la tabla por error.
UPDATE employees
SET salary = 55000
WHERE id = 1; DELETE — Eliminar registros
Elimina filas de una tabla según una condición. Igual que con UPDATE, omitir el WHERE es uno de los errores más costosos en producción.
DELETE FROM employees
WHERE id = 1; CREATE — Crear tablas y bases de datos
Crea una nueva tabla, base de datos, índice u otro objeto.
CREATE TABLE employees (
id INT PRIMARY KEY,
first_name VARCHAR(255),
last_name VARCHAR(255),
salary INT
); ALTER — Modificar la estructura de una tabla
Permite añadir, modificar o eliminar columnas de una tabla existente sin recrearla desde cero.
ALTER TABLE employees
ADD email VARCHAR(255); DROP — Eliminar tablas o bases de datos
Elimina permanentemente una tabla, base de datos o índice completo. Úsala con mucho cuidado: no hay confirmación intermedia.
DROP TABLE employees; JOIN — Combinar datos de varias tablas
Combina filas de dos o más tablas relacionadas mediante una columna en común, algo esencial en cualquier base de datos relacional bien normalizada.
SELECT employees.first_name, employees.last_name, departments.name
FROM employees
JOIN departments ON employees.department_id = departments.id; LIMIT — Limitar resultados
Restringe el número de filas devueltas por una consulta, muy útil para paginación o para explorar tablas grandes sin sobrecargar el cliente.
SELECT * FROM employees
LIMIT 5; COUNT — Contar registros
Cuenta el número de filas que cumplen (o no) una condición.
SELECT COUNT(*) FROM employees; GROUP BY — Agrupar resultados
Agrupa filas según una o más columnas, generalmente combinado con funciones de agregación como SUM, AVG o COUNT.
SELECT department, SUM(salary)
FROM employees
GROUP BY department; HAVING — Filtrar grupos agregados
Filtra los resultados de un GROUP BY según valores agregados. Es al agrupamiento lo que WHERE es a las filas individuales.
SELECT department, SUM(salary)
FROM employees
GROUP BY department
HAVING SUM(salary) > 1000000; INNER JOIN, LEFT JOIN y RIGHT JOIN
Existen varios tipos de JOIN según qué filas quieras conservar cuando no hay coincidencia entre tablas:
- INNER JOIN: devuelve solo las filas que tienen coincidencia en ambas tablas.
SELECT employees.first_name, employees.last_name, orders.order_number
FROM employees
INNER JOIN orders ON employees.id = orders.employee_id; - LEFT JOIN: devuelve todas las filas de la tabla izquierda, tengan o no coincidencia en la derecha.
SELECT customers.first_name, customers.last_name, orders.order_number
FROM customers
LEFT JOIN orders ON customers.id = orders.customer_id; - RIGHT JOIN: es el espejo del anterior, devuelve todas las filas de la tabla derecha.
SELECT customers.first_name, customers.last_name, orders.order_number
FROM orders
RIGHT JOIN customers ON orders.customer_id = customers.id; UNION — Combinar resultados de varias consultas
Combina el resultado de dos o más sentencias SELECT en un único conjunto de resultados, siempre que tengan el mismo número de columnas y tipos compatibles.
SELECT first_name, last_name, salary
FROM employees
UNION
SELECT name, 'N/A', 0
FROM departments; TRUNCATE — Vaciar una tabla
Elimina todos los registros de una tabla de forma mucho más rápida que DELETE, ya que no genera registros de reversión individuales. A diferencia de DELETE, también reinicia el contador de autoincremento.
TRUNCATE TABLE employees; RENAME — Renombrar objetos
Cambia el nombre de una tabla o base de datos, útil cuando el nombre original quedó desactualizado o mal escrito.
RENAME TABLE employees TO staff; EXPLAIN — Analizar el rendimiento de una consulta
EXPLAIN muestra el plan de ejecución que MySQL usará para resolver una consulta SELECT: qué tablas e índices utilizará, el tipo de unión aplicado y cuántas filas examinará. Es la herramienta principal para diagnosticar consultas lentas.
EXPLAIN SELECT customers.first_name, customers.last_name, orders.order_number
FROM orders
RIGHT JOIN customers ON orders.customer_id = customers.id; Entre los campos más relevantes que devuelve EXPLAIN están:
- type: el tipo de acceso usado (
ALL,index,range,ref, entre otros).ALLsuele indicar una revisión completa de la tabla, señal de que falta un índice. - possible_keys y key: los índices disponibles y el que realmente se usó.
- rows: una estimación de cuántas filas se examinarán para resolver la consulta.
- Extra: información adicional, como si se está usando un índice o una condición
WHEREde forma eficiente.
Usa EXPLAIN antes y después de agregar un índice o de reescribir una consulta para comparar el impacto real. Ten en cuenta que se aplica a sentencias de consulta y que en versiones recientes también acepta INSERT, UPDATE y DELETE, lo que ayuda a diagnosticar escrituras lentas en tablas grandes.
Dónde corre MySQL: hosting compartido, VPS o servidor propio
MySQL casi nunca se instala desde cero: viene incluido en el plan de alojamiento, y ese detalle determina cuánto control tienes sobre él.
| Entorno | Qué controlas | Límite típico |
|---|---|---|
| Hosting compartido | Tus bases de datos desde phpMyAdmin o el panel | No eliges la versión ni ajustas la memoria del motor; los recursos se comparten |
| VPS | Todo: versión, configuración, motores, usuarios, respaldos | Tú administras las actualizaciones y la seguridad |
| Servidor dedicado | Todo, con el hardware completo | El mismo, con más capacidad y más costo |
En un plan compartido no puedes tocar parámetros como innodb_buffer_pool_size, que es el que más influye en el rendimiento de MySQL porque define cuántos datos e índices caben en memoria antes de tener que leer del disco. Si tu aplicación tiene tablas grandes y consultas pesadas, ese techo se nota. Ahí es donde tiene sentido pasar a un VPS con recursos garantizados; si aún no tienes claro qué necesitas, la comparación entre hosting compartido, VPS y servidor dedicado lo aterriza con casos concretos.
Para un WordPress corriente, en cambio, el MySQL de un plan de hosting compartido sobra: el cuello de botella casi siempre está en los plugins que generan cientos de consultas por página, no en el motor de base de datos.
MySQL combina escalabilidad, robustez, licencia gratuita y un ecosistema enorme, razones suficientes para explicar por qué sigue siendo la base de datos relacional más usada en la web tres décadas después de su creación. Para 2026 la recomendación concreta es clara: servidores nuevos sobre 9.7 LTS, servidores estables sobre 8.4 LTS con soporte hasta 2032, y ninguno sobre 8.0, que ya salió de soporte. Y del lado del SQL, dominar las dieciséis sentencias de esta guía —desde un SELECT hasta el análisis con EXPLAIN— cubre la mayor parte del trabajo real con datos, sin importar si administras servidores, desarrollas aplicaciones o solo quieres entender qué hace el motor detrás de tu sitio. Si tienes dudas durante la implementación, nuestro equipo de soporte técnico está disponible 24/7 para ayudarte.
Hosting con LiteSpeed, NVMe y soporte 24/7 desde $3/mes.