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!