¿Por dónde empezar para crear una aplicación web que realice una gran cantidad de consultas a la base de datos? ¿Cómo almacenar en caché para reducir el impacto de la base de datos?

Hay dos enfoques para agregar el almacenamiento en caché a una aplicación, dependiendo de cómo piense que se usará la aplicación.
Si cree que tendrá que ser lo más rápido posible desde el día 1, puede
escriba el almacenamiento en caché desde el principio; esto a menudo es más fácil si no está
cada experimentado, ya que está almacenando en caché todo lo que no necesita
tomar una decisión sobre dónde agregarlo.

La segunda opción (y una que suelo usar) es codificar la aplicación sin almacenar en caché y luego perfilar el
código. La creación de perfiles significa que agrega un temporizador al comienzo de la aplicación
(generalmente el microtimer del sistema) y luego mida las compensaciones de este
apunte a través de su aplicación. Esto le permite averiguar qué partes de su
la aplicación está tardando más en ejecutarse y concentrar su esfuerzo en
acelerando estas áreas.

El almacenamiento en caché es solo una solución, las alternativas (que a menudo pueden funcionar junto con el almacenamiento en caché lateral) son reducir db
búsquedas y otras tareas que requieren mucho tiempo por elección de arquitectura o
algoritmo. En general, habrá un intercambio en el uso de la memoria,
uso del disco o complejidad del código que tendrá que administrar, por lo que no es
gratis…

Si el db está en la red, entonces tiene una conexión tcp costosa para
sacar y derribar, conexión persistente (esencialmente el
la conexión se almacena en caché del uso anterior) puede acelerarlo por un factor de
2-5 para consultas simples.

Una vez que elija almacenar en caché, podrá elegir dónde almacenar en caché. Esto se reduce a si la aplicación está restringida (o se espera que esté en el futuro)
a una sola máquina, o si espera que muchos sistemas sean
ejecutando la misma aplicación en los mismos datos en paralelo. Acceso en paralelo
sugiere el almacenamiento en caché de la red para permitir que todos los hosts aprovechen el
datos accedidos y almacenados en caché. Un caché basado en host solo ayudará al sistema
en el que se ejecuta el programa.

El almacenamiento en caché puede estar en la memoria o en el disco, incluso los discos rápidos (SSD, por ejemplo) son al menos un orden de
magnitud más lenta que la memoria, pero si los datos que está tratando de almacenar en caché
es más grande que la memoria disponible, puede tener sentido.

La elección de la aplicación / biblioteca de almacenamiento en caché solo tiene sentido después de haber entendido los requisitos anteriores …