En este post vamos a ver por dentro la base de datos de WordPress para entender un poco mejor cómo funciona WordPress y poder modificarla con seguridad en caso de necesitarlo, entiendo los elementos y la información que guarda WordPress en ella.
¿Qué es la base de datos de WordPress?
WordPress no es solo una web, es un sistema de gestión de contenidos que está compuesto por Archivos (archivos con programación, códigos html, php, css, y otros archivos, entre ellos los archivos de los temas y plugins, los archivos multimedia etc…) y por una base de datos (donde se guarda la información).
Entonces, WordPress para guardar la información de su sistema utiliza una Base de datos.
Es decir, una base de datos es simplemente un archivo que contiene y guarda información de forma organizada y que permite gestionar esa información.
Esta información, puede ser creada, modificada o eliminada dependiendo de las funcionalidades de nuestra web.
Sin esta información las funcionalidades de la web serían inútiles. (Imagínate el registro de usuarios de WordPress, si no puede guardar los datos de un usuario en ninguna parte, el registro nunca sería funcional)
Esta base de datos de WordPress contiene todo tipo de información del sistema de WordPress como por ejemplo:
- Los comentarios de la web
- Los post de la web.
- Las opciones de WordPress, temas y plugins.
- Las categorías y etiquetas del contenido
- Los usuarios y sus contraseñas
- Etc..
Toda esta información es utilizada por los archivos que componen WordPress y que permiten crear funcionalidades avanzadas para un proyecto web.
Qué tipo de base de datos MySQL
WordPress utiliza una base de datos MySQL que es el sistema de base de datos de código abierto más popular del mundo.
Como es fácil de crear y manipular, es fiable y es eficiente la base de datos MySQL se ha convertido en la base de datos elegida por la mayoría de aplicaciones web.
Por ejemplo, Facebook, Twitter y Youtube también utilizan este tipo de base de datos en sus sistemas.
Cómo acceder a la base de datos de WordPress
Puedes utilizar la herramienta llamada phpMyAdmin para ver la base de datos de WordPress, y normalmente puedes acceder a esta herramienta desde el panel de control de tu servidor.
Con esta herramienta podemos gestionar la base de datos manualmente y crear, borrar, modificar datos de nuestra base de datos.
Si no sabes lo que haces no toques nada dentro de esta herramienta, pero echarle un ojo nunca viene mal para aprender el funcionamiento de WordPress.
Puedes ver más información sobre esta herramienta en ¿Qué es y como usar phpMyAdmin?
Tablas de la base de datos de WordPress
Una base de datos está compuesta por tablas y celdas donde se guarda la información.
Si entras en la base de datos de tu instalación de WordPress verás unas tablas con nombres raros, y si es la primera vez que entras, seguramente te explote la cabeza y no comprendas nada.
Vamos a ver todas las tablas que se crean durante la instalación estándar de WordPress y veremos un resumen de qué datos hay en esas tablas para poder comprender mejor cómo trabaja WordPress.
Las tablas de la base de datos de WordPress:
wp_commentmeta
wp_commentmeta cada comentario tiene información adicional en metadatos y estos se almacenan en esta tabla. Por ejemplo, si utilizas el plugin akismet para controlar el spam, en esta tabla se guardan varios datos para marcar el comentario como spam o no.
wp_comments
wp_comments En esta tabla se almacenan los comentarios de WordPress. Podemos ver el comentario, la IP del usuario e incluso el navegador del usuario que dejó el comentario.
wp_links
wp_links Contiene información relacionada con los enlaces configurados en la característica de «enlaces WordPress», esta característica ha quedado obsoleta y ya no se encuentra en las nuevas instalaciones de WordPress desde la versión 3.5, pero la tabla sigue existiendo y normalmente estará vacía. Servía para crear Blog Rolls (listas de los enlaces de la web).
wp_options
wp_options Aquí se almacenan todas las opciones de WordPress (como las Opciones de Generales, Escritura, Lectura, Comentarios, Medios, Enlaces permanentes, Privacidad y opciones de los Widgets) y también la configuración de los temas y plugins. Puedes intuir a qué opción se refiere por el option_name. Uno de los cambios que se más comunes que se suelen hacer en esta tabla es cambiar la URL de la web cuando se hace una migración manual a otro servidor y queremos entrar al panel de administración.
wp_postmeta
wp_postmeta Aquí se almacenan los metadatos de cada publicación, que contienen información adicional de las características de estos post.
wp_post
wp_post Los post son el núcleo de la información en WordPress, tanto las entradas, como las páginas, los menús, y los datos de las imágenes son guardados y tratados como «post» y se guardan en esta tabla. En esta tabla podríamos cambiar el título y texto de las páginas y entradas. (Aunque los datos de las imágenes se guardan y tratan en esta tabla, el archivo real de la imagen está guardado en la carpeta «wp-content/uploads» de WordPress y no en la base de datos).
wp_terms_meta
wp_terms_meta En esta tabla se guardan datos adicionales de los elementos de las taxonomías. Normalmente esta tabla está vacía, pero sirve para darle características adicionales o campos personalizados a las categorías y etiquetas. Por ejemplo, podríamos hacer que la categoría «marketing digital» tenga una imagen destacada concreta, un icono o un título de seo diferente, o cualquier cosa que se nos ocurra si sabes programar. En esta tabla trabajan algunos plugins de personalización de categorías. (Guía de desarrollo sobre term meta)
wp_terms
wp_terms Aquí se encuentran las categorías y etiquetas que hemos creado y también otras taxonomías especiales como los tipos de menú que has creado en tu web.
wp_term_relationships
wp_term_relationships en esta tabla se relacionan los post, (como las páginas y las entradas), con las taxonomías que están utilizando. Es decir, relaciona el post nº5 con la categoría «marketing digital»
wp_term_taxonomy
wp_term_taxonomy en esta tabla se relacionan los terms (elementos de taxonomías) con el tipo de taxonomía. Es decir, indica que el elemento «marketing digital» es una «categoría» o una «etiqueta».
wp_usermeta
wp_usermeta en esta tabla se almacena la mayoría de la información adicional de los usuarios, como por ejemplo, nombre, apellidos, descripción, qué rol de administración, el color de su interfaz, y otras preferencias del usuario.
wp_user
wp_user esta tabla contiene una lista de los usuarios y su información vital, como su nombre del login, el nickname, el nombre mostrado, la contraseña (encriptada) y el email.
Tablas de plugins en la base de datos
En la base de datos de WordPress no solo encontraremos las tablas básicas de WordPress, muchos plugins crean sus propias tablas en la base de datos para guardar sus propios datos.
Por ejemplo:
- El plugin de seguridad Wordfence puede crear hasta 26 tablas en la base de datos.
- El plugin de diseño Revolution Slider crea hasta 6 tablas en la base de datos.
- El plugin redirection para redirigir enlaces crea 4 tablas en la base de datos.
- El plugin Yoast Seo crea 2 tablas de la base de datos.
Esto no significa que estos plugins solo guarden datos en sus tablas, algunos siguen teniendo parte de su configuración en la tabla wp_options.
Pero la utilizan para guardar todo tipo de información que necesitan para funcionar o para crear estadísticas.
Puedes averiguar que tablas pertenecen a un plugin fijate en el nombre de la propia tabla, ya que normalmente se intuye el nombre del plugin.
Problemas de rendimiento de la base de datos.
La base de datos es un contenedor de información que tiene que ser consultado múltiples veces para generar la web y que funcionen todas las características del sistema.
Este sistema de datos, en cuanto más datos tiene, más grande es, y cada vez que se va agrandando, el sistema tarda más tiempo en leer todos los datos.
Esto significa que una base de datos excesivamente grande puede generar problema de rendimiento.
Para solucionar este problema, hay que limpiar la base de datos de opciones temporales otros datos residuales.
Limpiar base de datos WordPress
Podemos limpiar la mayoría de datos basura o temporales de forma fácil con plugins como WP-Optimize.
Pero el gran problema son las tablas que han creado los plugins, ya que la mayoría de los plugins no borran sus tablas cuando el plugin es desactivado o borrado.
Para ello, es conveniente una limpieza manual de la base de datos, si sabes que ya no utilizas un plugin y detectas sus tablas en la base de datos puedes borrarlas sin problema (asegúrate de antes hacer una copia de la base de datos).
Y si no te manejas con las bases de datos contrata a un profesional.
Copia de seguridad de la base de datos
Puedes hacer una copia de la base datos en cualquier momento desde la herramienta PhpMyAdmin del servidor.
Una vez dentro, dirígete al apartado «Exportar«, y desde allí puedes descargarte el archivo SQL de la base de datos, que puedes guardarlo como copia de seguridad.
Si rompes algo, puedes cargar una copia de seguridad desde el apartado «importar»
Este mismo proceso sirve para migrar la base de datos de un servidor a otro.
Conclusión
La mayoría de usuarios de WordPress no entran en la base de datos, y no entienden el comportamiento y la importancia que tiene para que el sistema de WordPress funcione.
Pero tienes que saber que WordPress no es una página web estática creada solo con archivos, si no que guarda información en una base de datos para poder crear fantásticas funcionalidades, desde crear usuarios, hasta configurar el sistema, y eso son solo funcionalidades básicas.
Piensa que gracias a la base de datos pueden funcionar los plugins para trabajar el seo, mejorar la seguridad y el rendimiento de la web, hacer email marketing, crear estadísticas y cualquier otra funcionalidad avanzada que convierten a WordPress en un sistema que lleva a las páginas web a otro nivel.
Puedes encontrar más información en el codex oficial de WordPress información oficial acerca de la BD
Espero que no haya sido muy traumático este post si es la primera vez que entras en la base de datos de WordPress.
¡Un saludo!
Hola Gerardo, me gustó mucho cómo explicas cada una de las tablas de la db de WordPress. Tienes mucha razón sobre esta optimización de la db y borrar aquellas tablas que dejaron los plugins que dejamos de usar. Esta semana hice un post en Facebook sobre este tema y también el borrado de imágenes que ya no están vinculadas a ningún post. No se hicieron esperar los típicos ataques de otros usuarios que me alegaban que no era necesario borrar las tablas que ya no usa WP porque si volvías a instalar ese plugin ya todo estaba ahí configurado y no empezarías desde cero. En mi punto de vista personal creo que WP si optimiza su velocidad de carga si le liberamos la DB de datos innecesarios como tablas que no usa. Yo particularmente administro tales db de MySQL desde el shell de Linux con el comando mysqldump para respaldar y mysql para restaurar. Uso tar para respaldar la carperta public_html y listo. Pude reducir mi carpeta public_html desde 970MB hasta los 320MB al borrar muchas imágenes que ya no estaban vinculadas a ningún post. La base de datos la reduje desde los 30MB hasta los 11MB aproximadamente. Un saludo Pollo y ojalá te pases a ver mi blog ya que pronto publicaré un post sobre este tema y vincularé este post tuyo para mis lectores. 🙂
Gran comentario Angel! está claro que tener una base de datos limpia es más rápido, ya que es leída más rápidamente por el sistema ya que contiene menos datos basura, otras optimizaciones de la BD son reducir el número de revisiones de post que se crean, usar la herramienta de optimizar tablas del panel de phpmyadmin e incluso hay optimización avanzadas para la tabla options que consiste en crear un índice de esa tabla como se explica en este articulo de ayudawp https://ayudawp.com/indice-tabla-options-wordpress/
Vamos que si hay alguien que no entiende que se puede mejorar la velocidad de la web optimizando la base de datos es que está loco.
¡Un saludo y le echaré un ojo a tu blog!