Recursos

Prompt de auditoría de base de datos: caza los 5 fallos que hacen tu app lenta

El prompt que pegas en Claude Code para que audite tu código y encuentre los 5 cuellos de botella que arrastran tu app cuando entran usuarios reales.

  • #claude-code
  • #prompts
  • #base-de-datos
  • #rendimiento
  • #vibecoding

Tu app hecha con IA funciona con tus cuatro pruebas. Entran cien personas a la vez y se arrastra. Casi siempre no es la IA: es la base de datos por debajo. Este prompt se lo pegas a Claude Code y te dice cuáles de los 5 fallos típicos tiene tu código, en qué archivo, y cómo arreglarlos.

Cómo se usa

  1. Abre Claude Code en la raíz de tu proyecto (el directorio del código, no una carpeta suelta).
  2. Pega el prompt de abajo tal cual.
  3. Lee el informe. No aplica cambios solos — diagnostica y propone; decides tú.

Es un diagnóstico, no una varita. Te dice qué tienes y dónde duele; el fix lo revisas y lo aplicas tú con criterio.

El prompt

Actúa como ingeniero senior de backend especializado en rendimiento de bases de datos.

Tu tarea: auditar el código de ESTE proyecto buscando los 5 cuellos de botella de
rendimiento más comunes en apps que escalan mal. Revisa el acceso a datos en todo
el código relevante (modelos, queries, controladores/endpoints, ORM, SQL crudo).

REGLA INNEGOCIABLE: Diagnostica primero, no toques nada. Reporta y propón;
NO apliques ningún cambio hasta que yo lo revise y te lo pida explícitamente.

Busca específicamente estos 5 cuellos de botella:

1. N+1 queries — bucles que disparan una consulta por iteración en vez de una sola
   consulta agrupada (típico en ORMs sin eager loading / sin joins).
2. Consultas sin paginación — listas o endpoints que traen TODAS las filas de una
   tabla en cada llamada, sin LIMIT/OFFSET ni cursor.
3. Columnas sin índice — filtros (WHERE), joins y ordenaciones (ORDER BY) frecuentes
   sobre columnas que no tienen índice, forzando full table scans.
4. Conexiones mal gestionadas — ausencia de connection pool, o conexiones que se
   abren por petición y no se cierran/reutilizan correctamente.
5. SELECT * — consultas que traen todas las columnas cuando solo se usan unas pocas,
   moviendo datos de más por la red y la memoria.

Para CADA hallazgo, devuelve exactamente este formato:

- **Archivo y línea:** ruta/al/archivo.ext:123
- **Qué es y por qué duele:** explícalo en consecuencia real, no en jerga.
  Ejemplo: "esta pantalla tarda ~8s porque pide lo mismo 100 veces", o
  "se ahoga a partir de ~N usuarios concurrentes", o "trae 10.000 filas y
  consume RAM/red de más, encareciendo la infra".
- **Cómo comprobarlo:** el paso concreto para verificar que es real (query a ejecutar,
  EXPLAIN/EXPLAIN ANALYZE, log de queries, prueba de carga, métrica a mirar).
- **Fix mínimo sugerido:** el cambio más pequeño que lo resuelve (no un refactor
  enorme). Muestra el antes/después si ayuda.
- **Riesgo del fix:** qué podría romper o qué hay que vigilar al aplicarlo
  (p. ej. un índice nuevo ralentiza escrituras, paginar cambia el contrato de la API).

Si no encuentras alguno de los 5, dilo claramente ("no detecto N+1 en este código")
en vez de inventar un hallazgo. Ordena los hallazgos por impacto: primero lo que más
arrastra la app. Al final, dame un resumen de 3 líneas con qué arreglaría yo primero.

Recuerda: solo diagnóstico. No edites ni un archivo todavía.

Los 5 fallos, en cristiano

  • 1 · N+1 queries. Tu app le pide lo mismo a la base de datos cien veces seguidas en vez de una. Por eso una pantalla tonta tarda ocho segundos.
  • 2 · Sin paginación. Carga las diez mil filas enteras cada vez que abres una lista. Con cuatro usuarios va; con cien, se arrastra.
  • 3 · Columnas sin índice. Para encontrar un dato, lee la tabla entera fila por fila. Como buscar una palabra en un libro sin índice, página a página.
  • 4 · Conexiones mal gestionadas. Cada visita abre una conexión nueva y no la cierra. Llegan cien a la vez y la base de datos se ahoga y deja de responder.
  • 5 · SELECT *. Se trae las cuarenta columnas cuando necesita tres. Mueves un camión para llevar una caja: lento, y te cuesta más en servidor.

Lo honesto

Esto diagnostica, no arregla por arte de magia. El prompt te da un informe con criterio: qué tienes, dónde, y cómo lo tocarías. Pero cada fix tiene su riesgo (un índice nuevo abarata las lecturas y encarece las escrituras; paginar cambia cómo responde tu API). Revisa cada cambio antes de aplicarlo. La IA caza el problema; la decisión sigue siendo tuya.

Regla de oro

Pásalo antes de lanzar, no cuando ya se te ha caído con usuarios reales. Cinco minutos de diagnóstico ahora te ahorran la pantalla que se arrastra delante de cien personas después.


Sígueme para más trucos con Claude Code e IA → @pabloinpublic

Únete a la comunidad → pabloinpublic.com

Comunidad abierta

Comunidad PabloInPublic

Todo lo que necesitas para lanzar tu proyecto en público con IA, conocer gente que está en la misma, y no rendirte por el camino.

La comunidad ya está abierta. Entras en Skool en un minuto.

  • Tu precio, congelado mientras sigas dentro

    Entras a $29/mes y se te queda congelado mientras sigas siendo miembro. Solo a ese precio hasta los 50 primeros; después sube por tramos hasta $97 — pero a ti no.

  • Todo el contenido desde el día 1

    El curso completo, las píldoras, el directo semanal conmigo y los premios de cada mes. Empiezas a construir con IA desde el primer minuto.

o sígueme en Instagram → @pabloinpublic