Categorías
Programación Transformación digital WordPress

Mantenimiento de la base de datos en WordPress

Tengo la suerte de mantener sitios web basados en WordPress con una década de trayectoria. Algunos con muchísimos post, además de abundante tráfico, y en consecuencia donde hay que darles cierta atención y mantenimiento regular.

Aquí una sugerencia pequeña pero poderosa y muy necesaria de atender con regularidad.

Mantener la salud de WordPress

En el paso de los años es inevitable que, aún persiguiendo una cultura de «pocos plugins, sólo los necesarios», se vayan cambiando algunos por otros, se desinstalen los que ya no son útiles, etc. Y en ellos, muchas veces quedan tablas o configuraciones sin eliminarse completamente.

En contrapunto a esta buena práctica, de elegir los plugins, están quienes instalan decenas de complementos por cosas que podrían resolverse en 5 líneas de código. Incluso se ha popularizado la reventa de plugins pagos «crackeados» o denominados plugins nulled o plantillas truchas y/o clonadas para evadir la licencia, etc.

Para mantener la salud de WordPress, más allá de mantener al día sus actualizaciones, versión de PHP, etc; es oportuno pensar en tener una instalación de pruebas/sandbox que pueda romperse, reconstruirse, borrarse y volver a comenzar de cero o desde un backup o punto de restauración. Algo similar y más práctico son las instalaciones staging, que crean un clon del WordPress en el que vamos a trabajar y podemos romperlo sin problemas, luego replicar eso mismo sobre el original en caso de necesitarlo.

Mantener la salud de la base de datos con un click

Decía que mantengo como servicio freelance algunos WordPress que iniciaron conmigo hace más de 10 años, y en ellos hay que tener otros cuidados. Pero uno fundamental es el optimizar la base de datos, todo en cuanto tengamos a nuestro alcance.

Cuidar los datos: política de backup para la base de tu WordPress

El código de WordPress, de los plugins y plantillas, son relativamente sencillos de hacer backup y recuperar. Las bases de datos tienen otras implicancias: crecen en tamaño (peso) y longitud (cantidad de registros), cambian los motores de procesamiento, la codificación, etc… Sufren un poco más que «el código». Entonces, además de ser enfático en una buena política de Backups, vamos a una observación interesante.

De más decir que TODO backup que hagamos debe almacenarse en otro lugar, no en el mismo servidor. Puedes bajarlo o transferirlo automáticamente a Dropbox, GoogleDrive, un FTP o casilla de mails externa, bajarlo a tu computadora, tenerlos en un Pendrive o disco externo, etc. Si algo se daña gravemente en el hosting o servidor, no podrás luego conseguir los backups. Tremenda enseñanza que algunos aprendimos ante una urgencia.

Cuidar la integridad de esos datos en la base de datos

Las bases de datos son como un «excel», nada más que sin colores, ni negritas, ni nada que las haga bonitas. Son un archivo de texto que cumple cierto parámetro estandarizado y, a través de un «motor» cobra vida, es posible ejecutar consultas, procesar operaciones, etc.

Los archivos .sql son un archivos de texto plano (.txt) enorme, literalmente. También similar al CSV, que es un Excel pero sin superpoderes (estilos). Abajo un ejemplo de SQL, puro texto que sigue una sintaxis particular…

Dentro de taaanto texto, entre instalaciones, desinstalaciones de temas, plugins, actualización de post, de versiones, cambios en el motor, hay una especie de «polvillo» que se va juntando. Es un poco de residuo que no se borra de inmediato, además de que muchas veces en las bases de datos hay cosas que no se borrar, más sólo se ocultan al usuario…

También queda algo de ese «polvillo» y un poco de «estática» o suciedad por otras razones, como consultas en memoria, indexado, reproceso, etc. Todo esto técnicamente se denomina overhead.

Caso práctico: eliminando el overhead en una base de datos WordPress

Este sitio WordPress es antiguo, con más de 3000 post, algo más de 80.000 líneas en el archivo SQL si lo exportamos, y tomando de ejemplo dos tablas, encontramos una con un excesivo Overhead (22.2Mb de 57.3Mb) y otra con una acumulación importante.

captura de pantalla en phpmyadmin para una base de datos wordpress
PHP MyAdmin de una base de datos WordPress con elevado overhead

¿Cómo limpiamos esos datos de overhead?

En PHP MyAdmin es muy sencillo y basta ejecutar la «optimización» de las tablas, con 4 click lo tenemos resuelto.

  1. Ingresamos a PHP MyAdmin
  2. Seleccionamos la base de dato donde vamos a trabajar
  3. Seleccionamos todas las tablas
  4. Del desplegable buscamos «optimizar tablas»
paso a paso en phpmyadmin para optimizar tablas mysql

Esto ejecutará de forma sencilla el comando OPTIMIZE TABLE `table_name`... y nos mostrará el resultado con un OK en caso que se haya logrado limpiar algo:

Resumen y conclusiones:

Mantener la salud de WordPress, más allá de los beneficios en velocidad, optimización de la experiencia de usuario, ahorro de espacio, etc, en algunos casos pueden ser notorios.

El eliminar el overhead en bases de datos, de forma regular, es parte de la limpieza necesaria. Como decía, es quitar el polvillo con un paño húmedo antes que se hagan cortezas gruesas de mugre y haga falta refregar con cepillo de alambre y espátula.

Es a veces difícil de «medir» el impacto inmediato en performance, pero de manera teórica te imaginas que en una base de datos de ~80/100Mb tener ~25Mb de basura, de seguro esforzará menos la búsqueda de datos.

Consulta a tu empresa de hosting cualquier duda adicional. Si buscas una empresa con excelentes prestaciones, diferentes localizaciones y un soporte de maravillas, puedes confiar en mi proveedor de hosting principal para proyectos propios y de clientes, WN POWER.

Por Alejandro

Desde hace 15 años desarrollo, participa y gestiona proyectos on-line de diferente tipo, rubro y tamaño. Se ha desempeñado con trabajos para Argentina, Chile, Uruguay, Brasil, España y Rusia; con un mix de desafíos más que interesantes. Hace algunos años con fuerte enfoque en transformación digital de pymes y el e-commerce.