Con tres registros de prueba todo va rápido. Con datos y usuarios reales, el proyecto se arrastra. No es mala suerte: son problemas conocidos que solo aparecen cuando hay volumen.
Primero mide
No optimices a ciegas. Averigua dónde se va el tiempo:
- En el navegador: Lighthouse y la pestaña de red muestran el peso de la página y qué tarda en cargar.
- En el servidor: el registro de consultas lentas de la base de datos y los tiempos por petición.
Las causas más comunes
- Consultas sin índices. Una búsqueda que tarda milisegundos con cien filas puede tardar segundos con cien mil.
- Consultas repetidas. Cargar una lista y hacer una consulta extra por cada elemento (el problema N+1) multiplica el tiempo.
- Todo sin paginar. Traer miles de registros cuando el usuario ve diez.
- Imágenes y JavaScript pesados. Fotos sin optimizar y paquetes de código enormes retrasan la primera carga.
- Trabajo pesado dentro de la petición. Enviar correos, generar un PDF o llamar a un servicio externo mientras el usuario espera.
- Sin caché. Recalcular en cada visita algo que casi nunca cambia.
- Servidor lejos de la base de datos. Cada consulta paga la distancia.
Cómo se arregla
- Agrega índices en las columnas por las que se busca y se ordena.
- Carga las relaciones en bloque, no una por una.
- Pagina y limita los resultados.
- Optimiza las imágenes y divide el código que se descarga.
- Pasa el trabajo pesado a colas que se procesan en segundo plano.
- Guarda en caché lo que no cambia seguido.
Sobre subir a un servidor más grande
Casi nunca arregla esto. Suelen ser unas pocas correcciones bien dirigidas, y por eso hay que medir primero.
¿Tu proyecto va lento en producción? Cuéntame y lo reviso.