Introduccion

Una base de datos MySQL eficiente es clave para garantizar que tu sitio web, ya sea en WordPress, Prestashop o Magento, funcione rápidamente y sin problemas. En este artículo, te explico cómo optimizar y limpiar tu base de datos paso a paso para reducir la carga del servidor y mejorar la experiencia del usuario.

Realiza una copia de seguridad antes de empezar

Antes de realizar cualquier cambio en tu base de datos, es fundamental crear una copia de seguridad. Puedes usar herramientas como:

phpMyAdmin: Exporta la base de datos completa en formato SQL.

Plugins o extensiones: Para WordPress, usa plugins como UpdraftPlus o WP-DB-Backup.

Comandos MySQL:

mysqldump -u usuario -p nombre_base_datos > respaldo.sql

Optimización específica por CMS

 

WordPress

a) Eliminar revisiones de publicaciones

Cada vez que editas una página o entrada en WordPress, se guarda una revisión. Esto puede llenar tu base de datos con contenido innecesario.

DELETE FROM wp_posts WHERE post_type = 'revision';

b) Eliminar comentarios no aprobados y spam

Los comentarios no aprobados o marcados como spam también ocupan espacio.

DELETE FROM wp_comments WHERE comment_approved = 'spam' OR comment_approved = '0';

c) Eliminar transitorios expirados

Los transitorios son datos temporales que pueden llenar la tabla wp_options si no se gestionan adecuadamente:

DELETE FROM wp_options WHERE option_name LIKE '_transient_%' AND option_value < NOW();

d) Limitar revisiones futuras

Agrega este código a wp-config.php:

define('WP_POST_REVISIONS', 5);

e) Optimizar tablas fragmentadas

Ejemplo para tablas comunes:

OPTIMIZE TABLE wp_posts, wp_postmeta, wp_comments;

Prestashop

a) Eliminar carritos abandonados

En Prestashop, los carritos abandonados pueden acumularse si no se convierten en pedidos:

DELETE FROM ps_cart WHERE id_cart NOT IN (SELECT id_cart FROM ps_orders);

b) Optimizar tablas de datos

Identifica y optimiza tablas fragmentadas:

SHOW TABLE STATUS WHERE Data_free > 0;
OPTIMIZE TABLE ps_cart, ps_orders, ps_customer;

Magento

a) Eliminar logs antiguos

En Magento, los logs pueden crecer rápidamente y ocupar espacio innecesario:

DELETE FROM log_visitor WHERE last_visit_time < NOW() - INTERVAL 30 DAY;
DELETE FROM log_visitor_info WHERE visitor_id NOT IN (SELECT visitor_id FROM log_visitor);

b) Configurar la caducidad de logs

Edita el archivo env.php para reducir el tiempo de retención de logs:

'session' => [
'save_lifetime' => 86400,
],

c) Reindexar tablas

Ejecuta este comando desde la terminal:

php bin/magento indexer:reindex

3. Mejora las índices y las consultas

Activar el registro de consultas lentas en MySQL

Activa el registro de consultas lentas para identificar ineficiencias:

SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 2;

Explicación:

Registra las consultas que tardan más de 2 segundos, ayudándote a identificar y optimizar procesos ineficientes.

4. Configura tareas automáticas para mantenimiento

Usar cron jobs para optimizar tablas

Un cron job es una tarea programada en el servidor que se ejecuta automáticamente en horarios definidos. Estas tareas son ideales para realizar optimizaciones periódicas sin intervención manual, como limpiar datos antiguos o optimizar tablas.

Ejemplo de cron job para optimizar tablas seleccionadas diariamente a las 3 a.m.:

0 3 * * * /usr/bin/mysql -u usuario -p"contraseña" -e "OPTIMIZE TABLE wp_posts, wp_postmeta;"

Ventajas de los cron jobs:

  • Automatización: Ahorran tiempo al ejecutar tareas repetitivas de mantenimiento.
  • Eficiencia: Mejoran el rendimiento al realizar tareas críticas en momentos de baja carga del servidor.
  • Personalización: Pueden configurarse para distintas tareas y horarios según las necesidades del sistema.

Plugins y extensiones

Para WordPress, plugins como WP-Optimize pueden ayudarte a limpiar y optimizar la base de datos automáticamente.

Conclusión

Optimizar tu base de datos MySQL es esencial para mantener el rendimiento de tu sitio web. Siguiendo estos pasos específicos para WordPress, Prestashop y Magento, no solo mejorarás la velocidad de carga, sino que también reducirás el uso de recursos del servidor. ¡Dedica tiempo a esta tarea y verás resultados significativos! Si tienes dudas, no dudes en consultarme. ¡Felices optimizaciones!

Ir al contenido