Mantener Wordpress rápido

Wordpress Mysql
Hace no mucho tiempo comenté en otro post como hacer que wordpress funcionase más rápido optimizando las tablas de la base de datos. La diferencia es abismal, una vez optimizada la base de datos se multiplica el rendimiento, sin embargo, los efectos son muy poco duraderos, en cuanto escribe en el blog, se va degradando el rendimiento.

Dado que es difícil y tedioso estar pendiente de optimizar manualmente la base de datos, he hecho un script que lo haga, y lo he puesto en un cron diario, podría ponerlo cada 5 minutos, pero en mi caso no es necesario.

Para ejecutar este script de forma automatizada, debemos crear un usuario de mysql, que pueda trabajar sobre la base de datos sin password. Yo he creado un $USUARIO que en local permite la conexion sin contraseña.

Una vez creado el usuario de la base de datos, procedemos a generar la sentencia SQL de optimización, y la guardamos en un fichero de texto (P.Ej.: optimiza.sql):

use wordpress
OPTIMIZE TABLE `wp_categories` , `wp_comments` , `wp_linkcategories` ,
`wp_links` , `wp_options` , `wp_post2cat` , `wp_postmeta` , `wp_posts` ,
`wp_users` ;

Este es un ejemplo típico que deberia servir para cualquier wordpress, dependiendo de los plugins instalados tendrás más o menos tablas.

Ahora vamos a hacer un mini-script que haga una copia de seguridad de la base de datos (por si acaso) que además nos permitirá desatender los backups, y posteriormente lanzará la sentencia SQL para optimizar la base de datos.

#!/bin/bash

#Copia de la base de datos
mysqldump -u USUARIO wordpress > /ruta_backup/nombre_$(date +%F).sql

#Optimizar tablas y guardamos log
mysql -u USUARIO < /runta/ficher_optimiza.sql > /tmp/log_optimizar

Este script nos generará una copia de la base de datos en formato SQL, y con la fecha de la copia de la base de datos en el nombre de el fichero. Posteriormente optimizará las tablas indicadas, y guardara el resultado en un archivo de log.

Basta con poner en el crontab una linea que llame a este script, para optimizar la base de datos automaticamente.

~#: crontab -e

00 14    * * *   /bin/optimiza_wp

Y eso es todo, lo único que no me convence es el usuario sin password, seguro que hay alguna forma de hacer todo esto mejor, pero a mi me funciona así, si encuentro la forma de hacerlo “Com Toca”(TM) ya lo postearé por aquí.

Publicado el Wednesday 21 de December de 2005 por chuano
Guardado en Recetas
Compártelo Trackback

2 comentarios a “Mantener Wordpress rápido” »»

  1. Comment de Mimpo publicado el 22/12/05 a las 23:01
    Gravatar Mimpo

    Hablo desde la ignorancia, pero un usuario de mysql siempre se ejecuta desde localhost, ¿no? Vamos, yo en el wp lo configuraba siempre como localhost, aunque estubiera en un servidor en francia… Lo digo, porque si ahora me dieras un usuario ftp y pongo como usuario ‘usuario’, como has dicho que no tendría contraseña, te podría modificar o borrar las bases de datos.
    Repito, hablo desde la ignorancia, pero creo que es así, ¿no?

  2. Comment de chuano publicado el 23/12/05 a las 1:09
    Gravatar chuano

    Por partes, a mysql se puede acceder desde equipos remotos, aunque en general suelen estar en los mismos servidores que los apache. Yo por ejemplo tengo un hosting donde la base de datos está en otro servidor. Esto es útil para repartir las cargas de trabajo principalmente, si tienes un apache con cientos o miles de dominios alojados, cada uno con su db en mysql, te conviene separar para aumentar el rendimiento. Pero mysql (al menos en debian) viene configurada por defecto para trabajar en localhost unicamente.

    Por otra parte, el usuario no es un usuario de sikstema, sino un usuario de mysql, lo que si podrías es crear un script en php o otro lenguaje, que accediese a la base de datos con el “usuario” (es un nombre fictiocio, no he puesto ese nombre), pero en mi caso como no le doy hosting a nadie, no tengo ese problema, y si alguien consigue acceso al servidor, estoy vendido, con ese usuario y sin el.

    Evidentemente es algo a solucionar, si parece un potencial problema, pero no se como solucionarlo ahora mismo, si tengo un rato investigaré y ya posteare el resultado.

    Un saludo.

Deja un Comentario

[x] Cerrar
E-mail
Subir