Gravatar de Armonth

Recomendación: DB Cache Reloaded para WordPress


Si bien con varias pruebas para un blog conocido llegué a la conclusión que lo mejor es –sin duda– ReallyStatic no quita que algunos no puedan usarlo (sin ir más lejos, aquí por usar una versión antigua/personalizada).

Pero sí que hay bastante gente que usa WP-Super Cache y para ellos toca recomendar hoy DB Cache Reloaded.

DB Cache Reloaded es un plugin que en lugar de cachear páginas estáticas hace lo mismo con las peticiones MySQL. Es un fork del antiguo DB Cache (el cual dejo de ser actualizado).

Al cachear las peticiones MySQL estamos quitándole carga al servidor MySQL porque si bien WP-Cache/WP-Super Cache ahorran mucho, deben hacer peticiones MySQL cada vez que quieres obtener esa parte del menú que se repite en cada entrada, ese widget, etcétera, etcétera.

Aunque su autor no opina bien de los dos plugins mencionados antes, la verdad es que lo mejor es utilizar los dos: WP-Super Cache y DB Cache Reloaded. Uno cachea las peticiones a la base de datos y el otro las usa en lugar de pedirlas al servidor MySQL para generar el contenido estático. También tiene la ventaja (obvia) de hacer más rápido el panel de administración.

7 Comentarios

  1. maty:

    Pregunta muy importante, creo:

    ¿Cómo afecta el “cacheo” de páginas y de peticiones a los contadores de visitas?

    Wednesday, 7 de April/2010 @ 15:46

  2. Armonth:

    Pues como cualquier tipo de cache: si el contador debe ser ejecutado cada vez, o lo sacas fuera del cache (ie: con <!–mclude–> <!–/mclude–> en WP-Cache) o no funcionará.

    Personalmente NO soy partidiario de sistemas de estadísticas basados en PHP/MySQL. Añaden una importante carga al sistema (a menudo demasiada) para lo poco que ofrecen.

    Para estadísticas yo recomiendo algo que lea los logs del Apache… o si te gusta Analytics usarlo (el cual llama a un JavaScript externo por lo que siempre se ejecutará… salvo que el usuario deshabilite JS que entonces no contara esa visita). Resumiendo y por orden de mejor a peor siempre EMHO:

    1. Analizador de logs (AWFFull por ejemplo, un fork de Webalizer).
    2. Google Analyticis o JS externo similar que te sirva.
    3. Cualquier otro sistema que no dependa de PHP/MySQL.
    4. Un sistema que dependa de PHP/MySQL.

    Wednesday, 7 de April/2010 @ 16:03

  3. maty:

    Me refería a contadores externos vía javascript, como Google Analytics, Statcounter…

    Los que se implementan vía plugins en WP sólo sirven para agrandar desmesuradamente la base de datos si no se limpian cada cierto tiempo.

    Por otro lado, cuando una bitácora tiene éxito, el problema suele venir por exceso de consumo de CPU antaño y por falta de memoria en la actualidad, por lo que las prestaciones de los servidores web compartidos suelen ser insuficientes, de ahí el interés por el cacheo, sobre todo el de las peticiones. De ese modo, tal vez, podamos aguantar más antes de migrar a un servidor dedicado con 2/4 GB de memoria RAM, digo.

    Muchas gracias por contestar.

    Wednesday, 7 de April/2010 @ 16:29

  4. filex:

    No recuerdo donde, pero creo que hace algunos años decían que esto de hacer cache de MySQL era malo e inseguro, pero se ve que este plugin esta bien diseñado y se ve bien al probarlo.

    Tal vez experimente con ReallyStatic en otra oportunidad, ese plugin ya es otra cosa.

    Wednesday, 7 de April/2010 @ 16:29

  5. felipe.lv:

    Algunas notas:

    ¿En qué se diferencia esto de usar un caché de código como memcached, apc, etc? (aparte de la facilidad de instalar un plugin para WordPress v/s un sistema de cache)
    Para maty: no debería afectar en lo más mínimo. Por ejemplo, Google Analytics funciona insertando un código javascript que crea un elemento script con un src que está en sus servidores; luego registra la información que se genera al enviar la petición por el script y otros datos (resolución de pantalla, por ejemplo) a partir de lo recopilado por el script. Statcounter debe funcionar de una manera similar, o bien insertando una imagen vacía — en ambos casos, lo que importa es la petición que el navegador envía al servidor de estadísticas

    PD: para haber anunciado que no volvías a escribir, veo que has escrito bastante jaja… me alegro, tu blog es uno de esos que vale la pena seguir ;)

    Thursday, 8 de April/2010 @ 20:04

  6. Armonth:

    Felipe si no recuerdo mal memcached es para “objetos” y puede ser llamadas a BBDD, código precompilado, etcétera. Así que poca diferencía habría.

    Lo mejor en los casos que se quiere optimizar TODO es hacer un esquema completo de por donde pasa la información desde que se genera la petición hasta que es enviada. En principio el resultado HTML (cacheado o no) es el “último paso” antes de enviar la página. Una vez hecho todo el esquema, se mira qué se puede optimizar en cada paso.

    ¿Servidor Web? Apache o lighttpd. Configurarlo.

    ¿PHP? Aceleradores/opcode.

    ¿MySQL? Buena estructura de la DDBB/cache de las SQL.

    ¿Páginas poco dinámicas (como los blogs)? Enviar el HTML cacheado resultante (WP-Cache en mi caso por ejemplo).

    Si configuras memcached para que haga cache de los resultados de las peticiones SQL entonces estás haciendo lo mismo que con este plugin.

    PD a tu PD: relee el post ese de C’est fini y lo entenderás ;P

    Thursday, 8 de April/2010 @ 20:59

  7. maty:

    Recomiendo: W3 Total Cache

    http://nauscopio.nireblog.com/post/2010/04/12/fichero-htaccess-para-bitacoras-con-cms-wordpress#comment-435682

    Sunday, 18 de April/2010 @ 11:22

Comentarios cerrados