Cacheo en PHP
20-09-2007
Luis Artola
Clasificado como:
EZ Components ,
PHP ,
WEBDEV ,
En una web que recibe muchas visitas el rendimiento del sistema puede ser muy importante. Dentro una web existen infinidad de tareas que se ejecutan una y otra vez para generar lo mismo. ¿Y si sólo se ejecutara una web la generación y a partir de ahí se accediera a una copia que guardáramos? A la técnica de ahorrar CPU evitando generar una y otra vez el mismo código se le llamar cachear.
Diferentes tipos de cacheos:
- Cacheo de plantillas: cada vez que alguien accede a una web dinámica, el sistema genera el HTML a partir de una base de datos y una serie de plantillas. Se puede hacer que se genere la primera vez, y luego se acceda a un HTML con la plantilla ya montada.
- Cacheo de datos de la aplicación: por ejemplo, los datos de configuración. En vez de hacer una consulta SQL cada vez que queremos saber un dato de configuración de la aplicación (Ej.: número de filas paginadas en una tabla), se puede hacer la consulta la primera vez, y luego guardar una versión local de la configuración.
- Cacheos de llamadas a base de datos: en muchas webs se realizan muchas más consultas SELECT sobre la base de datos, que modificaciones con INSERT, UPDATE y DELETE. Se puede hacer que hagamos la consulta SELECT una vez, y todas las posteriores coja los datos de una versión guardada.
- Cacheos de scripts del servidor: es la opción más bestia. Se trata de cachear directamente la llamada. En vez de centrarse en cachear sólo las plantillas o las llamadas, etc. se hace que cuando se haga una petición sobre una URL se guarde lo que se devuelve al navegador y a partir de entonces se devuelva la versión guardada.
Los sistemas de cacheo no están exentos de problemas. El primero es evidente: ¿qué pasa si estoy devolviendo una versión guardada de una página cuyos datos ya han cambiado? Antes de aplicar una técnica de cacheo conviene estudiar si realmente su pondrá un beneficio.
A continuación diferentes mecanismos de cacheo y artículos:
- Smarty: sistema de plantillas que permite el cacheo total o parcial de las mismas. También permite cacheo de algunos datos.
- Ez components – cache: principalmente cacheo de datos de la aplicación.
- Memcached: cachea cualquier conjunto de datos serializados. Se utiliza especialmente para cachear consultas SQL.
- APC – Alternative PHP Cache: cachea los scripts de PHP para que no se compile en cada llamada. También ofrece la posibilidad de cachear datos.
- ionCube PHP Accelerator: promete hacer lo mismo que APC
- xCache sobre MAC os X : artículo para instalar sobre MAC OS X un sistema de cacheo similar al de APC e ionCube.
- Cómo combinar memcached con APC.
- Montar un cluster con mysql
- Cómo configurar un cluster barato con LAMP
- APC versus eAccelerator versus Zend Platform
- Planteamiento técnico de www.elmundo.es
- Escalabilidad en Digg Maestros del web sobre memcached.
- Instalar APC sobre FreeBSD
- Memcache – Mejorar el rendimiento de PHP
[...] Artículo Original Cacheo en PHP | WEBDEV [...]