• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

DecodeCMS

Tu WordPress a otro Nivel ...

  • Acerca de
  • Contacto
  • Inicio
  • Tutoriales
    • Themes
    • Plugins
    • Core
    • Recursos
  • Cursos
  • Acceder
    • Mis cursos
    • Mi Cuenta
    • Acceder
Inicio / Tutoriales / Core / Optimizar la tabla wp_postmeta en WordPress

Optimizar la tabla wp_postmeta en WordPress

[ 10 septiembre 2024 ] [ Autor: Jhon Marreros Guzmán ][ Core - Avanzado] [ ]

optimización

Suscríbete a DecodeCMS:  

¿Has revisado alguna vez los datos de la tabla wp_postmeta?, en algunas ocasiones esta tabla suele llenarse de registros que deberíamos depurar, en este artículo veremos como realizar esto con consultas SQL.

 

Generalidades

Este artículo esta basado en un caso real de un sitio web WordPress, en el cual note que la tabla wp_postmeta había crecido demasiado, llegando a los 4GB aproximadamente.

 

Revisión de Registros

Lo primero es analizar los meta_keys que tienen más registros, esto lo podemos hacer con consultas SQL.

Contar meta_keys

Puedes usar la siguiente consulta SQL para contar la cantidad de registros por cada meta_key

SELECT COUNT(meta_key) contar, meta_key
FROM wp_postmeta
GROUP BY meta_key ORDER BY contar DESC;

 
Si notamos que hay una gran cantidad del meta_key llamado: _wp_old_date

meta_key en tabla wp_postmeta

 
El meta_key _wp_old_date define la fecha de cambio del objeto y se vuelve a crear de ser necesario. Por lo tanto podemos eliminar los registros con este meta_key.

Puedes ver una referencia a este meta_key en la función wp_check_for_changed_dates() de WordPress

 

Contar registros repetidos post_id, meta_key, meta_value

A veces algunos plugins, por error, o por un bug, puede insertar registros repetidos, para el mismo post_id, con meta_key y meta_value iguales.

Para detectarlos podemos usar la siguientes consultas SQL

SELECT COUNT(*) FROM wp_postmeta;
SELECT COUNT(DISTINCT post_id, meta_key, meta_value) FROM wp_postmeta;

 
Si notamos alguna diferencia importante en la cantidad de registros, tal como se muestra en la imagen, entonces será necesario eliminar los registros repetidos

Comparación registros repetidos

 
En la siguiente imagen se muestra un ejemplo de registros repetidos para el post_id = 16, usando la siguiente consulta:

SELECT * FROM wp_postmeta WHERE post_id = 16 ORDER BY meta_key;
Revisión registros con el mismo valor

 

Eliminación de registros de la tabla wp_postmeta

Una vez que hemos identificado los registros que queremos eliminar, podemos hacer consultas SQL para borrarlos.

Realiza una copia de seguridad de tu Base de Datos antes de realizar estos cambios.

 

Eliminación de meta_key _wp_old_date

Puedes eliminar los meta_key _wp_old_date de toda la tabla con la siguiente consulta:

DELETE FROM wp_postmeta WHERE meta_key = '_wp_old_date';

 

Eliminación de registros repetidos

Para eliminar registros repetidos crearemos una tabla temporal en donde guardaremos los datos sin repeticiones, luego truncaremos la tabla wp_postmeta y finalmente volcaremos los datos a la tabla vacía.

Todas estas consultas deben ejecutarse en una misma sesión, de otro modo la tabla temporal se perderá y también los datos.
CREATE TEMPORARY TABLE tmp_postmeta SELECT DISTINCT post_id, meta_key, meta_value FROM wp_postmeta;
TRUNCATE TABLE wp_postmeta;
INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT post_id, meta_key, meta_value FROM tmp_postmeta;

 

Conclusión

Como has podido comprobar, en algunos casos tenemos que la tabla wp_postmeta puede crecer mucho y es necesario inspeccionarla para ver si tiene registros repetidos o algún meta_key que podamos eliminar.

 

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Artículos Relacionados

  • Optimizar la carga de Javascript en WordPress con Async y DeferOptimizar la carga de Javascript en WordPress con Async y Defer
  • Instalar WordPress localmente con MAMPInstalar WordPress localmente con MAMP
  • Instalar WordPress localmente con LocalWPInstalar WordPress localmente con LocalWP
  • REST API en WordPressCómo usar la REST API de WordPress
Valora este artículo : 1 barra2 barras3 barras4 barras5 barras (2 votos, promedio: 5,00 de 5)
Cargando...

Interacciones con los lectores

Comentarios

  1. Susana

    2 mayo, 2025

    Hola Jhon, agradezco haber encontrado este sitio con tanto conocimiento plasmado en él. Estoy aprendiendo wordpress y puedo decir que cuando tengo dudas en algo y veo su nombre se que puedo contar la mayor calidad en la respuesta. Saludos y le sigo.

    • Jhon Marreros Guzmán

      3 mayo, 2025

      Hola Susana. Gracias 🙂

Para escribir código envolver con: <pre class="language-xxx"><code> </code></pre> ,reemplaza las xxx (php, css, html)

*

* Gravatar habilitado

Barra lateral principal

Curso Decodifica WordPress

Únete a DecodeCMS

Recibirás como regalo:

Guia práctica con video:
¿Quieres agregar código a WordPress? Revisa las diferentes opciones que tienes.Ver más

Omnisend
Alojamiento Wordpress

Niveles

Básico Intermedio Avanzado

Etiquetas

accesibilidad css dashboard editor error funcionalidad herramientas imagen js librería mejoras optimización seguridad SEO social woocommerce

Populares

Aprende a usar Taxonomías en WordPress

Agregar descripción en ítems de menú WordPress

Crear un Widget para el dashboard de WordPress

Herramienta de Salud del Sitio en WordPress

© logo decode pie
Política de Privacidad | Política de devoluciones
Copyrigth 2026 Todos los derechos reservados