...

Reducir el tamaño de la base de datos de WordPress: Medidas sensatas sin pérdida de datos

Le mostraré específicamente cómo puede Reducir el tamaño de la base de datos, sin perder contenido: desde soluciones rápidas de plug-in hasta pasos controlados de MySQL. Esto le permite reducir Tiempos de carga, El servidor queda liberado y usted mantiene el control total sobre cada cambio.

Puntos centrales

Antes de trabajar en las tablas, aclaro los objetivos, aseguro la base de datos y decido qué pasos de limpieza son realmente necesarios. Así evito riesgos, reduzco el mantenimiento y consigo efectos mensurables. Los siguientes puntos le guiarán a través del proceso de forma específica. Recibirá una secuencia clara, consejos prácticos y asesoramiento sobre los escollos típicos. A continuación, aplicará las optimizaciones de forma segura y repetible.

  • Copia de seguridad Primero: Prueba completa de copia de seguridad y reproducción
  • Plugins utilizar: WP-Optimise, WP-Sweep, Limpiador Avanzado de Bases de Datos
  • phpMyAdminOptimización de tablas, limpieza de transitorios
  • wp_opciones de un vistazo: Compruebe la carga automática y las cargas heredadas
  • Automatice: Trabajos regulares de limpieza y supervisión

Priorizo las medidas en función del impacto y el riesgo, empiezo por las candidatas a borrado seguro y voy subiendo hasta intervenciones más profundas. De este modo se mantiene el sitio web Los datos permanecen intactos y la base de datos se vuelve previsiblemente más ágil.

Por qué crecen las bases de datos de WordPress - y lo que realmente importa

En el día a día, acumulas rápidamente Revisiones, comentarios spam, contenidos borrados en la papelera de reciclaje y transitorios caducados. Estas entradas aumentan los tiempos de consulta, hinchan las tablas e incrementan el CPU-consumo. Se ven especialmente afectados wp_posts (revisiones), wp_postmeta (meta-ballast), wp_options (transients, autoload) y wp_comments (spam, trash). Además, se produce un exceso en las tablas MySQL que surge tras muchas eliminaciones y ralentiza las consultas. Abordar el crecimiento en una fase temprana ahorra recursos, reduce el tiempo hasta el primer byte y garantiza un material de datos limpio.

Diagnóstico preciso: ¿Qué está creciendo realmente?

Antes de borrar, mido. En phpMyAdmin, muestro los datos y el tamaño de los índices de cada tabla e identifico a los principales consumidores. Si quieres ser más preciso, utiliza una vista general a través de INFORMATION_SCHEMA y ordena por datos totales:

SELECCIONE
  nombre_tabla,
  ROUND((data_length + index_length)/1024/1024, 2) AS size_mb
FROM esquema_informacion.tablas
WHERE esquema_tabla = BASE_DE_DATOS()
ORDER BY (longitud_datos + longitud_índices) DESC;

Así reconozco si, por ejemplo. wp_postmeta domina debido a una gran cantidad de metadatos de producto o SEO. Importante: El tamaño físico de los archivos no siempre se reduce inmediatamente con InnoDB; OPTIMIZAR TABLA libera memoria dentro de la tabla y -con file_per_table- también a nivel del sistema de archivos. Documento los valores iniciales y finales para hacer visible el beneficio de cada medida.

Backup first: Cómo hacer una copia de seguridad de mis datos

Antes de borrar algo, exporto el Base de datos completamente y pruebo la restauración. En phpMyAdmin selecciono la base de datos, hago clic en Exportar y guardo el archivo SQL localmente. Un plugin de copia de seguridad probado también puede crear una segunda copia de seguridad. Siempre compruebo si la copia de seguridad incluye todas las tablas y prefijos, especialmente con multisitio o cambiado Prefijos de tabla. Sólo cuando la copia de seguridad y la restauración funcionan empiezo la limpieza.

Puesta en escena, desmantelamiento y minimización del tiempo de inactividad

Planifico las intervenciones de manera que el sitio siga siendo accesible. Para ello, primero trabajo -si es posible- en un Puesta en escena, Pruebo los flujos más importantes (inicio de sesión, pago, búsqueda) y sólo entonces transfiero los pasos al sistema en vivo. Programo las ejecuciones de borrado más grandes fuera de las horas de visita principales, desactivo la caché poco antes de la ejecución, la vacío después de la ejecución y compruebo el registro de errores. Para las reversiones, tengo preparada una copia de seguridad de la base de datos probada y anoto cada consulta en un registro de cambios para poder deshacer los cambios.

Plugins para la limpieza de bases de datos de wordpress en el día a día

Para las tareas rutinarias, confío primero en WP-Optimise, porque gestiona las revisiones, el spam, la papelera de reciclaje, los transitorios y las tablas de una sola vez. Tras la instalación, activo la limpieza automática y programo ejecuciones semanales. Si es necesario, utilizo WP-Sweep para los pingbacks/trackbacks y Advanced Database Cleaner para limpiar los huérfanos. Entradas para identificar candidatos concretos. Antes de borrar, compruebo la vista previa, desactivo las opciones arriesgadas y sólo confirmo los candidatos claros. De esta forma, consigo efectos notables con el mínimo esfuerzo y puedo automatizar la rutina „wp optimise database“ limpiamente.

Optimización manual en phpMyAdmin: mantenga el control

Si necesito más control, cambio a phpMyAdmin y ordeno las tablas por tamaño. Optimizo los candidatos grandes utilizando el desplegable, que internamente utiliza el comando OPTIMIZAR TABLA y reduce el voladizo. Elimino los transitorios caducados con DELETE FROM wp_options WHERE option_name LIKE '_transient_%' OR option_name LIKE '_site_transient_%';. Elimino las etiquetas no utilizadas con DELETE FROM wp_terms WHERE term_id NOT IN (SELECT term_id FROM wp_term_taxonomy);. Después de cada paso, compruebo el sitio web y el registro de errores antes de seguir limpiando para que Riesgos siguen siendo pequeñas.

Limpia de forma segura las revisiones, el spam y la papelera de reciclaje

Las revisiones pueden ser útiles, pero inflan el mercado indefinidamente. wp_posts en. Los limito con define('WP_POST_REVISIONS', 3); en wp-config.php y borrar las revisiones antiguas a través del plugin. Limpio regularmente el spam y la basura; esto reduce el tamaño de wp_comentarios notable. También miro los borradores automáticos y elimino los duplicados. Después de cada eliminación, vuelvo a ejecutar una optimización de la tabla para liberar realmente la memoria.

Mantenga wp_options limpio: Autoload y Transients

La mesa wp_opciones a menudo causa retrasos ocultos, especialmente con grandes valores de autocarga. Mido la cantidad total de opciones autocargadas y detengo las entradas sobredimensionadas que se cargan en cada llamada. Regularmente borro los transitorios caducados porque si no ocupan espacio y alargan los tiempos de arranque. Si quieres leer más sobre los antecedentes y las fuentes de carga típicas, puedes encontrar detalles en Entender los transitorios. Después de la limpieza, reviso el frontend y el backend para comprobar los efectos sobre Tiempos de carga para comprobarlo.

Una simple consulta me ayuda a estimar rápidamente la carga automática: SELECT ROUND(SUM(LENGTH(option_value))/1024/1024,2) AS autoload_mb FROM wp_options WHERE autoload='yes';. Encuentro valores atípicos individuales a través de SELECT option_name, LENGTH(option_value) AS bytes FROM wp_options WHERE autoload='yes' ORDER BY bytes DESC LIMIT 20;. Configuro los valores grandes y poco utilizados con autoload = ’no‘ y me aseguro de que el plugin los cargue específicamente cuando sea necesario.

Optimización selectiva de las tablas: ¿Qué aporta más beneficios?

En lugar de borrarlo todo al azar, me centro en las tablas con mayor volumen de datos. Efecto. wp_posts y wp_postmeta a menudo proporcionan la palanca más fuerte, seguido de wp_options y wp_comments. A continuación, realizo una comparación del antes y el después en phpMyAdmin para medir el progreso. Esta transparencia minimiza el riesgo y muestra dónde merece la pena realizar la siguiente ronda. El siguiente resumen clasifica los hallazgos típicos y las acciones adecuadas para que pueda proceder de forma estructurada.

Cuadro Causa Lastre típico Medida recomendada Riesgo
wp_posts Revisiones, diseños de automóviles Decenas de revisiones por contribución Limitar/eliminar revisiones, optimizar Baja para copias de seguridad
wp_postmeta Entradas meta antiguas Metateclas huérfanas Eliminar meta huérfanos, comprobar índices Medios, comprobar de antemano
wp_opciones Transitorios, Autoload Datos de caché caducados Eliminar transitorios, minimizar autoload Bajo a medio
wp_comentarios Spam, papelera de reciclaje Problemas heredados y oleadas de spam Borrado masivo, automatismos establecidos Bajo

Caso especial WooCommerce y tiendas de alto tráfico

Las tiendas generan un número de registros de datos superior a la media en wp_postmeta (variaciones, atributos, metadatos de pedido) y rellenar wp_opciones con sesiones y transitorios. Borro regularmente sesiones/transitorios caducados, acorto el almacenamiento de carritos defectuosos y compruebo si el tema o los plugins almacenan metadatos de producto innecesarios. Mantengo pequeñas las tablas del programador de acciones (por ejemplo, as_actions) limpiando antes los trabajos completados y no reprogramando interminablemente los trabajos fallidos. Programo una ronda extra después de grandes ventas o importaciones. OPTIMIZAR TABLA, para reducir rápidamente el voladizo.

Funciones multisitio

En las redes, el lastre se multiplica en todos los blogs. Procedo sitio por sitio, prestando atención a los prefijos de tablas independientes (por ejemplo. wp_2_) y, además, limpiar Transitorios en toda la red en _site_transient_*. En el caso de las tablas globales (por ejemplo, wp_users, wp_usermeta), no borro nada en general, pero compruebo las dependencias entre sitios. Programo las tareas de limpieza fuera de las ventanas de sincronización o migración para mantener la coherencia de la red.

Pasos avanzados de ajuste en MySQL WordPress

Con mucho tráfico presto atención a InnoDB-configuración e índices. Un buffer pool correctamente dimensionado y unos índices significativos en las columnas filtradas con frecuencia (por ejemplo, meta_key en wp_postmeta) aceleran significativamente las consultas. La caché de consultas existe en versiones antiguas de MySQL, las configuraciones modernas se benefician más de una buena caché a nivel de aplicación u objeto. Además, evito las entradas de carga automática de gran tamaño que ralentizan la carga temprana de la página; se pueden encontrar más detalles en Opciones de carga automática. Después de cada ajuste, vuelvo a medir para determinar el efecto sobre Tiempos de respuesta para verificarlo.

Índices bajo control: modelos de eficacia probada

En concreto, compruebo si los filtros típicos son compatibles de forma razonable. Para wp_postmeta índices se han basado en (post_id) y, en función de las consultas, a (meta_key, post_id) probada. En wp_opciones por defecto hay un índice en nombre_opción; para las consultas después de autoload utilizo el existente (carga automática)-index o combinar filtros con LIMIT. Antes de añadir índices, simulo las consultas más frecuentes, mido su tiempo de ejecución y tengo en cuenta que los índices cuestan memoria y pueden alargar los procesos de escritura. Elimino los índices superfluos o redundantes si no aportan ninguna ventaja apreciable.

WP-CLI en la práctica: limpieza rápida y programable

Si se dispone de acceso shell, acelero las rutinas con WP-CLI. Ejemplos que utilizo en las ventanas de mantenimiento:

  • Limpia los transitorios: wp transient delete --expired y si es necesario wp transient delete --all
  • Papelera vacía: wp comment delete --status=spam --force, wp comment delete --status=trash --force
  • Reducir las revisiones: wp post list --post_type='post,page' --field=ID --post_status=publish | xargs -n100 wp post delete-revision
  • Optimizar la base de datos: wp db optimizar y compruebe los tamaños con wp db size --tables

Estos comandos pueden integrarse en cron jobs o scripts de despliegue. Empiezo con comandos de lectura (listas, recuento), confirmo la selección y sólo entonces ejecuto comandos de borrado.

Juego de caracteres, intercalación y formato de fila

Los conjuntos de caracteres incoherentes aumentan los riesgos durante las migraciones y pueden restringir los índices a las columnas de texto. Si es posible, cambio a utf8mb4 con intercalación coherente (por ejemplo. utf8mb4_unicode_ci). Antes de un cambio, hago una copia de seguridad de la base de datos, compruebo una actualización por etapas y convierto las tablas en pasos controlados. Para las tablas InnoDB, utilizo un formato de fila actual (por ejemplo. DINÁMICO) para que los TEXT/VARCHAR largos puedan intercambiarse de forma eficiente. En combinación con innodb_file_per_table=ON proporciona OPTIMIZAR TABLA garantiza que se devuelva espacio libre al sistema de archivos.

Automatización: planificar la limpieza en lugar de esperar

Ahorro tiempo haciendo trabajos recurrentes terminar. En WP-Optimize, configuro limpiezas semanales y optimizaciones de tablas mensuales. Además, un cron del sistema puede activar de forma fiable el propio cron de WordPress para que las tareas programadas no se cancelen. Para acciones repetidas como „wp optimise database“, establezco ventanas de tiempo fijas fuera de las horas de visita principales. Esto mantiene la base de datos permanentemente optimizada sin que yo tenga que activar cada paso manualmente.

Seguimiento y pruebas: hacer visible el éxito

Después de cada ronda, compruebo el Tamaño BD en phpMyAdmin y documento el desarrollo. Compruebo cómo cambian Time-to-First-Byte y Largest Contentful Paint. Me ocupo de los aumentos conspicuos en wp_options o wp_postmeta pronto, antes de que afecten al rendimiento. Este artículo proporciona elementos de reflexión útiles para limpiar permanentemente las opciones: Actualizar wp_options. Al mismo tiempo, llevo un registro de cambios con la fecha, las medidas y el resultado para poder seguir las decisiones más adelante.

Cifras clave y valores umbral de uso práctico

Defino límites claros para que las optimizaciones no se atasquen. Por ejemplo: Mantener la carga automática total por debajo de 1-2 MB; wp_postmeta en relación con wp_posts plausible (ningún factor superior a 20-50x sin una buena razón); los transeúntes comparten en wp_opciones no crecer. En cuanto al rendimiento, mido regularmente el TTFB, las consultas de búsqueda en el backend (por ejemplo, la lista de productos) y los tiempos de carga del administrador. Si los valores centrales aumentan o las tablas cambian repentinamente, inicio un análisis centrado en lugar de una ronda general de „borrar todo“.

Eliminar sistemáticamente las tablas huérfanas y los restos de desinstalación

Muchos plugins dejan atrás tablas y opciones. Hago una lista de las tablas no esenciales mediante prefijos, reúno las candidatas y procedo en dos etapas: En primer lugar, cambio el nombre de la tabla a modo de prueba (por ejemplo. RENAME TABLE wp_altplugin_data TO wp_altplugin_data_backup;) y controlo la página. Si todo permanece estable, borro la tabla definitivamente. En wp_opciones Busco los espacios de nombres típicos de los plugins (option_name LIKE '%pluginname%') y sólo elimino las entradas cuya función he comprendido. Para wp_usermeta y wp_postmeta Identifico las claves huérfanas comprobando si los ID referenciados siguen existiendo.

Evitar errores comunes

Nunca borro sin Copia de seguridad y prueba de reproducción. Sólo realizo borrados masivos arriesgados en wp_postmeta tras analizar las meta keys huérfanas. Utilizo las limpiezas de plugins de forma selectiva en lugar de activar todas las opciones. Después de borrar, borro las cachés y pruebo las funciones para que ninguna sección de la página falle inesperadamente. Si algo sigue sin estar claro, primero trabajo en una instancia de ensayo y sólo transfiero las limpiezas al sistema activo tras una prueba satisfactoria.

Resumen conciso

Con una secuencia clara, limpia Copia de seguridad y unas cuantas herramientas, cualquier base de datos de WordPress puede racionalizarse sin perder datos. Empiezo con candidatos seguros como transitorios, spam y revisiones, optimizo tablas y limito el crecimiento futuro mediante reglas. Para configuraciones más grandes, utilizo pasos manuales en phpMyAdmin y puntos de ajuste razonables de MySQL. Las rutinas automatizadas mantienen la base de datos sosteniblemente pequeña y mediblemente rápida. Si sigues estas pautas, reducirás el tamaño, disminuirás la carga del servidor y acelerarás notablemente las páginas, de forma predecible, segura y comprensible.

Artículos de actualidad