Realmente no tengo ninguna experiencia con el almacenamiento en caché en absoluto, por lo que esto puede parecer una pregunta estúpida, pero ¿cómo saber cuándo almacenar en caché sus datos? Ni siquiera fui capaz de encontrar un sitio que hablara sobre esto, pero ¿pueden ser solo mis habilidades de búsqueda o quizás demasiadas variables para considerar?PHP APC ¿Guardar en caché o no?
Probablemente esté usando APC. ¿Alguien tiene algún ejemplo de lo que sería la menor cantidad de datos que necesitaría para almacenarlo en caché? Por ejemplo, supongamos que tiene una matriz con 100 elementos y utiliza un bucle foreach y realiza una manipulación simple de la matriz, ¿debería almacenar en caché el resultado? ¿Qué tal si tuviera 1000 artículos, 10000 artículos, etc.?
¿Debería estar almacenando los resultados de la búsqueda en la base de datos? ¿Qué tipo de consultas debe almacenar en caché? Supongo que un simple seleccionar y tal vez un par de instrucciones se une a un DB mysql no necesita el almacenamiento en caché, ¿o sí? Suponiendo que la caché de consultas de mysql está activada, ¿eso significa que no necesita almacenar en caché la capa de la aplicación, o debería hacerlo todavía?
Si crea una instancia de un objeto, ¿debería almacenarlo en caché? ¿Cómo determinar si se debe almacenar en caché o no? Así que una guía general sobre qué almacenar en caché sería agradable, los ejemplos también serían realmente útiles, gracias.
@Joker Solo como un pequeño complemento, en caso de que no lo sepa, APC proporciona 2 tipos de caché, un caché de código de operación utilizado por php internamente para 'hacerlo más rápido' y el caché de usuario que puede usar para almacenar datos. El caché de usuario es parte que vas a necesitar aquí. (me disculpo si esto le está enseñando a la gente a chupar huevos, pero espero que pueda serle útil a otros que se crucen con esta pregunta) –
Sí, soy consciente de que el caché del código de operación funciona automáticamente si tiene una APC habilitada. Cuando dice que debe probar para ver si las consultas se leen más rápidamente desde la base de datos o el caché, ¿cómo podría probar esto? ¿Y cuándo debería almacenar en caché los datos normales? Por ejemplo, mi ejemplo de bucle foreach. – Joker
@Joker: la forma de probar es probarlo (utilizando ambos métodos) y medir los tiempos ... no hay cálculos absolutos que puedan indicarle con anticipación, aunque usar EXPLAIN en las consultas de su base de datos puede dar algunas pistas. Recuerde que siempre debe garantizar los mejores índices en su base de datos de todos modos. Tampoco existe una regla "dura y rápida" para su ejemplo de bucle ... es algo que debe evaluarse caso por caso. Todo lo que puedo decir es "no almacenar en caché solo por el almacenamiento en caché", solo hazlo cuando haya un beneficio real y cuantificable. –