Saltar al contenido

Red Cultural

red-cultural.mrubi.dev
Captura de Red Cultural

El reto principal

El muro de una red social es el sitio donde aparece el problema N+1 sin que nadie lo invite. Cada publicación necesita su autor, su conteo de me gusta y sus comentarios; escrito de la forma obvia, cargar veinte publicaciones se convierte en decenas de consultas por página.

Problema concreto

Pintar el muro lanzaba una consulta por publicación para el autor y otra para los me gusta. Con pocos registros no se nota; con datos reales sí. Lo resolví con JOIN para traer los autores en la misma consulta y COUNT agregado con GROUP BY para los me gusta, más los índices que faltaban en las claves foráneas — que es donde estaba la mitad del tiempo perdido.

Qué aprendí

Repetir un tipo de proyecto que ya hiciste es la forma más rápida de medir cuánto aprendiste. Aquí las decisiones que en Pintelog me costaron días salieron solas, y el tiempo se fue en lo que de verdad era nuevo.

  • El problema N+1 se detecta contando consultas por vista, no leyendo el código
  • Las claves foráneas no crean índices por sí solas en todos los motores: hay que revisarlo
  • Modelar los me gusta como tabla con clave compuesta evita duplicados sin lógica extra
Tecnologías
  • PHP
  • MySQL
  • JavaScript
  • VPS