MySQL es un sistema open source de administración de bases de datos que es desarrollado y soportado por Oracle.

Esa es la respuesta corta de un enunciado a la pregunta de “qué es MySQL”, pero vamos a explicarla un poco mejor usando términos más simples.

Una base de datos es una colección estructurada de datos que está organizada para ser usada y extraída de forma sencilla. Para un sitio de WordPress, esos “datos” son cosas como el texto de las publicaciones de su blog, información de todos los usuarios registrados en su sitio, datos autocargados, opciones importantes, configuraciones, etc.

MySQL es sólo uno de los sistemas populares que pueden almacenar y administrar esos datos por usted, y es una solución de base de datos especialmente popular para sitios de WordPress.

Lectura recomendada: Cómo Solucionar el Error «MySQL Server Has Gone Away» en WordPress y Cómo Solucionar el Error MySQL 1064.

Ahora vamos a ser un poco más específicos cuando se trata de esta pregunta.

¿Qué Es MySQL? Explicado en Detalle

MySQL fue originalmente lanzado en 1995. Desde entonces, ha pasado por varios cambios de propiedad/administración, antes de terminar en la Oracle Corporation en 2010. A pesar de que Oracle está a cargo ahora, MySQL sigue siendo un software open source, lo que quiere decir que usted puede usarlo y modificarlo a su gusto.

Logo de MySQL
Logo de MySQL (fuente de la imagen: MySQL/Oracle)

El nombre viene al juntar “My” – el nombre de la hija del co-fundador – con SQL – la abreviatura de Structured Query Language, el cual es el lenguaje de programación que le ayuda a acceder y administrar datos en una base de datos relacional.

Para poder entender como funciona MySQL, es importante conocer dos conceptos conectados:

Bases de Datos Relacionales

Cuando se trata de almacenar datos en una base de datos, hay distintos enfoques que usted puede utilizar.

MySQL opta por un enfoque llamado una base de datos relacional.

Con una base de datos relacional, sus datos son fragmentados en varias áreas de almacenamiento separadas – llamadas tablas – en lugar de poner todo junto en una gran unidad de almacenamiento.

Por ejemplo, digamos que quiere almacenar dos tipos de información:

  • Clientes – su nombre, dirección, detalles, etc.
  • Pedidos – como los productos que compran, el precio, quién hizo la orden, etc.

Si intenta poner todos estos datos juntos en un gran bote, tendrá algunos problemas como:

  • Datos distintos – los datos que usted necesita para recolectar para una orden son diferentes que los que son para un cliente.
  • Datos duplicados – cada cliente tiene un nombre, y cada orden también tiene el nombre de un cliente. El lidiar con datos duplicados suele ser complicado.
  • Sin organización – ¿cómo se conecta uno de forma concisa la información de un pedido con la información de un cliente?

Para resolver esos problemas, una base de datos relacional usaría una tabla separada para los clientes y otra tabla separada para las ordenes.

Sin embargo, usted querrá poder decir “muéstreme todas las ordenes para John Doe”. Aquí es donde entra la parte relacional.

Al usar algo llamada una “llave”, usted podrá enlazar los datos, usted verá qué utiliza este modelo relacional, con todos sus datos divididos en tablas separadas.

Por defecto, WordPress utiliza 12 tablas separadas, pero muchos plugins de WordPress también agregarán sus propias tablas. Por ejemplo, ¡la base de datos para el sitio de WordPress de abajo tiene 44 tablas separadas!

Ejemplo de tablas distintas en MySQL
Ejemplo de tablas distintas en MySQL

Para terminar este concepto relacional, hagámoslo específico a WordPress…

WordPress almacena publicaciones de blog en la tabla de wp_posts y los usuarios en la tabla de wp_users. Sin embargo, porque esas dos tablas están conectadas por una llave usted podrá enlazar cada cuenta de usuario con todas las publicaciones de blog que cada usuario ha escrito.

Así es como luce la base de datos.

Cada publicación es asignada a post_author, la cual es un número único de identificación (esta es la llave):

La tabla de wp_posts
La tabla de wp_posts

Luego, si quiere ver qué cuenta de usuario corresponde a ese número, usted podría ver la ID en la tabla de wp_users:

Tabla de wp_users
Tabla de wp_users

La llave – el número ID – es lo que conecta todo. Y así es como se “relacionan” una con otra, a pesar de almacenar los datos en tablas separadas.

Modelo de Cliente-Servidor

Más allá del sistema de bases de datos relacional, MySQL también utiliza algo llamado el modelo cliente-servidor.

La parte de servidor es donde sus datos realmente residen. Pero, para poder acceder a estos datos, usted deberá pedirlos. Aquí es donde entra el cliente.

Usando SQL- el lenguaje de programación que mencionamos anteriormente – el cliente envía una petición al servidor de la base de datos para los datos que el cliente necesita.

Por ejemplo, si alguien visita una publicación de un blog en su sitio, su sitio de WordPress enviará múltiples peticiones SQL al servidor de la base de datos para obtener toda la información que necesita para entregar la publicación del blog al navegador del visitante. Haría:

  • Consulta a la tabla wp_posts para obtener contenido para la publicación del blog
  • Consulta a la tabla de wp_users para obtener información para la casilla del autor (utilizando la llave que le mostramos anteriormente)
  • Etc.

Si quiere ver exactamente qué tipos de peticiones de bases de datos son hechas por su sitio de WordPress, usted puede utilizar un maravilloso plugin llamado Query Monitor para ver la interacción exacta entre su sitio de WordPress (el cliente) y el servidor de la base de datos:

El plugin de Query Monitor muestra sus queries individuales de SQL enviados al servidor MySQL
El plugin de Query Monitor muestra sus consultas individuales de SQL enviados al servidor MySQL

Otra solución premium que puedes utilizar es New Relic (requiere licencia). Si tu sitio de WordPress no puede acceder al servidor de la base de datos, se produce el típico mensaje de error al establecer una conexión con la base de datos. En Kinsta, utilizamos la herramienta integrada Kinsta APM para monitorear tus sitios.

Kinsta Utiliza MariaDB, No MySQL: ¿Cuál Es la Diferencia?

En Kinsta, utilizamos un sistema de base de datos llamado MariaDB, no MySQL. Sin embargo, las mismas características que vio con MySQL también aplican a MariaDB.

De hecho, MariaDb es en realidad un fork de MySQL, y el desarrollador líder de MariaDB es uno de los fundadores originales de MySQL. Un “fork” quiere decir que los desarrolladores de MariaDB tomaron la idea original del código open source de MySQL como su base y luego construyeron sobre esto para crear MariaDB

Así que, a pesar de tener un nombre distinto, MariaDB está vinculado estrechamente a MySQL y ofrece capacidad de reemplazo “drop-in” (esto es, que usted podrá cambiar sin problema alguno de MySQL a MariaDB sin la necesidad de tomar precauciones especiales).

Sin embargo, mientras que MariaDB ofrece una interoperabilidad con MySQL, también ofrece un desempeño mejorado en algunas áreas, lo cual cumple con nuestra filosofía de utilizar la arquitectura de mejor desempeño para dar poder a su sitio de WordPress.

Kinsta utiliza MariaDB, un variante de MySQL, para asegurar el mejor desempeño para su sitio de WordPress. 🚀Clic para Tuitear

Recapitulación: ¿Qué Es MySQL?

MySQL es un sistema open source de administración de base de datos relacional. Para sitios de WordPress, esto quiere decir que ayuda a almacenar todas las publicaciones de su blog, usuarios, información de plugin, etc.

Este almacena esa información en “tablas” separadas y lo conecta con “llaves”, por la cual es relacional.

Cuando su sitio de WordPress necesita acceder esa información, envía una petición al servidor de la base de datos usando SQL (este es el modelo de cliente-servidor).

Kinsta utiliza MariaDB, no MySQL. Sin embargo, MariaDb es un fork de MySQL de uno de los co-fundadores de MySQL y ofrece una interoperabilidad de reemplazo drop-in, al igual que unas mejoras de desempeño. Y así, todos los conceptos principales en este artículo también aplican a MariaDb.

Si usted tiene a Kinsta como su host, ofrecemos acceso directo a estas dos bases de datos, como también la posibilidad de utilizar herramientas de administración de base de datos como phpMyAdmin.