Avisos
Vaciar todo

[Resuelto] Tabla wp_postmeta  

 
Jose Carlos
 Jose Carlos
Estimable Member

Hola buenas noches.

 

Vemos que nuestra tabla wp_postmeta tiene una cantidad enorme de datos y nos preguntamos si hay alguna forma de borrar cosas y optimizarla de alguna manera mediante SQL, podriamos insertar este codigo para limpiarla?;

 

SELECT * FROM wp_postmeta pm LEFT JOIN wp_posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL;
DELETE pm FROM wp_postmeta pm LEFT JOIN wp_posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL;

Podriais por favor indicarnos como limpiarla?

Gracias

Saludos

Jose Carlos

 

Contenido solo visible a usuarios registrados

Respondido : 16/10/2024 12:25 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Jose Carlos.

La tabla wp_postmeta en WordPress es una de las tablas más importantes para almacenar meta información relacionada con las entradas (posts) en el sitio web, incluyendo páginas, productos (en el caso de WooCommerce), y otros tipos de contenido personalizados (custom post types).

  • WooCommerce utiliza wp_postmeta para almacenar información de productos. Por ejemplo:
    • _price: Almacena el precio del producto.
    • _stock_status: Almacena el estado del inventario.
  • Páginas y entradas de WordPress pueden tener metadatos como:
    • _wp_page_template: Que define la plantilla que usa una página.
    • _edit_last: Indica el ID del usuario que editó la publicación por última vez.

 

La tabla wp_postmeta puede llegar a ser muy grande, especialmente en sitios que usan WooCommerce, ya que cada producto tiene muchos metadatos asociados.

 

Veo que tienes el plugin WP-Optimize que puedes utilizar para realizar una limpieza de la base de datos, el plugin elimina todos los datos huérfanos que puedas tener en la tabla wp_postmeta.

 

Si quieres eliminarlo desde phpMyAdmin puedes utilizar una consulta:

Eliminar datos innecesarios o no utilizados:

DELETE pm
FROM wp_postmeta pm
LEFT JOIN wp_posts wp ON wp.ID = pm.post_id
WHERE wp.ID IS NULL;

 Eliminar datos duplicados:

DELETE pm1
FROM wp_postmeta pm1
INNER JOIN wp_postmeta pm2
WHERE pm1.meta_id > pm2.meta_id
AND pm1.post_id = pm2.post_id
AND pm1.meta_key = pm2.meta_key;

Eliminar metadatos vacíos:

DELETE FROM wp_postmeta WHERE meta_value = '';

Optimización posterior a la limpieza:

OPTIMIZE TABLE wp_postmeta;

 

Nota: Siempre realiza una copia de seguridad completa de la base de datos antes de ejecutar cualquier consulta de eliminación masiva.

 

Personalmente, antes de utilizar consultas en la base de datos, probaria optimizar las tablas con el plugin WP-Optimize.

 

Un saludo

 

Respondido : 16/10/2024 9:59 am

Jose Carlos
 Jose Carlos
Estimable Member

@pepesoler

Gracias Pepe, agradecemos tus indicaciones y ayuda.

 

Saludos

 

Jose Carlos

Respondido : 16/10/2024 3:39 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Jose Carlos.

De nada! Me alegra que fuera lo que estabas buscando. 

Si necesitas más información o ayuda con cualquier otro tema, no dudes en preguntarnos. ¡Estamos aquí para ayudarte!

 

Un Saludo

Respondido : 16/10/2024 3:42 pm

wpdoctor-revisa-la-salud-de-tu-wordpress