STATUS IS UPWIKI DE OPTIMIZACIÓN WEB
26Fortalecer
Rendimiento y entrega / Fortalecer

Rendimiento de bases de datos para sitios de contenido y comercio

Cómo localizar trabajo costoso en la base de datos, mejorar las rutas que importan y desplegar cambios de rendimiento sin añadir riesgo a la fiabilidad.

Rendimiento de bases de datos para sitios de contenido y comercio — GUÍA VISUAL
LEER
8 minutos
FUENTES
8
REVALIDAR
2027-03-27
revisado
Revisor de confiabilidad de bases de datos con contexto de aplicación, seguridad y despliegue
LA RESPUESTA BREVE

Empieza con la decisión.

Empieza por la solicitud de usuario que va lenta y después identifica su trabajo en la base de datos. Mide una consulta representativa, inspecciona su plan y cambia una restricción comprobada a la vez: forma de la consulta, índice, paginación, comportamiento de caché o uso de conexiones. El resultado debe seguir devolviendo el contenido, precio, inventario y permisos correctos.

Para sitios de contenido y comercio, usa medición dirigida y despliegues conservadores. Mantén respuestas de solo lectura compartibles fuera de la base de datos cuando proceda, acota correctamente los datos personalizados y preserva capacidad para trabajo normal y recuperación. Prueba con tráfico realista, publica gradualmente y conserva un trayecto practicado de vuelta a una versión conocida buena de la aplicación.

GUÍA VISUAL

Ve el trabajo como un sistema.

Usa este mapa para conectar las decisiones del artículo antes de actuar sobre tácticas individuales.

SIUFortalecer
01Encuentra la solicitud costosa antes de cambiar la base de datos
02Diseña índices para la ruta de acceso que realmente usas
03Haz la paginación estable y asequible
04Cachea trabajo de lectura sin servir respuestas incorrectas
01

Encuentra la solicitud costosa antes de cambiar la base de datos

Parte de una acción de usuario: carga de categoría, búsqueda de artículo, añadir al carrito o envío de pedido. Captura su ruta, número de consultas, duración en la base de datos, filas devueltas y duración de la petición. Una página lenta también puede esperar a código de aplicación u otra dependencia, así que no diagnostiques solo por el tiempo de carga de la página.

Un plan de consulta es la ruta de la base de datos a través de tablas, índices, joins, ordenaciones y agregaciones. En PostgreSQL, EXPLAIN muestra esa ruta. EXPLAIN ANALYZE ejecuta la sentencia e informa filas y tiempos reales, así que usa una consulta representativa segura. Una gran diferencia entre filas estimadas y reales es motivo para investigar estadísticas o condiciones, no una petición automática de índice.

Traza un recorrido

Vincula una consulta candidata a una ruta y un resultado, para que un informe de panel no supere a un checkout lento.

Mantén una línea base

Registra tiempos antes del cambio y tráfico comparable sin registrar identificadores de clientes, tokens o valores relacionados con tarjetas.

02

Diseña índices para la ruta de acceso que realmente usas

Un índice es una estructura mantenida que puede ayudar a localizar filas o devolverlas en orden; no es un interruptor universal de velocidad. Empieza por los filtros, claves de join y orden de una consulta importante, y después confirma el índice propuesto en un plan. PostgreSQL documenta que un índice B-tree coincidente puede satisfacer ORDER BY sin una ordenación separada, especialmente con un LIMIT pequeño.

Los índices añaden almacenamiento y trabajo de escritura porque inserciones, actualizaciones y borrados los mantienen. Para una consulta que necesita una gran fracción de una tabla, un escaneo secuencial y una ordenación explícita pueden ser más rápidos. Prueba con datos similares a producción y conserva un índice solo cuando el beneficio justifique su coste.

Ajusta a la ruta de acceso

Usa los filtros reales de la consulta y el ORDER BY, incluyendo un desempate determinista cuando la interfaz necesita un orden estable.

Evita índices especulativos

Revisa si un índice se usa y qué cuesta durante las escrituras; reevalúalo a medida que cambian datos y tráfico.

03

Haz la paginación estable y asequible

La paginación por número de página suele usar LIMIT más OFFSET. Impón siempre un orden predecible. PostgreSQL advierte que sin ORDER BY, LIMIT puede devolver un subconjunto impredecible; distintos valores de LIMIT u OFFSET pueden producir subconjuntos inconsistentes porque el optimizador puede elegir planes diferentes.

Los offsets grandes merecen escrutinio porque las filas omitidas todavía deben calcularse. Para catálogos profundos, historial de pedidos o navegación de archivos, considera la paginación por cursor o keyset: solicita filas después del último valor estable de orden y un desempate único. Define cómo aparecen registros nuevos o borrados antes de cambiar la interfaz.

Fija un tamaño de página

Devuelve la página más pequeña útil en lugar de un resultado sin acotar.

Separa los totales

Decide si la interfaz realmente necesita un total exacto en cada solicitud.

04

Cachea trabajo de lectura sin servir respuestas incorrectas

El cache reutiliza un resultado previo en lugar de reconstruirlo desde la base de datos. Empieza en la capa HTTP para páginas públicas y repetibles y activos versionados, porque un acierto de caché puede evitar trabajo de aplicación y base de datos. web.dev recomienda caché de larga duración para URLs versionadas; cambiar la URL es el mecanismo práctico de invalidación.

La política de caché es una decisión de corrección. Una caché compartida puede reutilizar una respuesta entre usuarios, así que no compartas salida específica de cuenta, carrito, precio o autorización a menos que esté diseñada y probada para ese ámbito. Cache-Control private restringe la reutilización a la caché del navegador, mientras que no-store indica a las cachés que no la retengan.

Clasifica las respuestas

Separa salida pública de catálogo o artículo de la salida específica de sesión, ubicación y sensible a permisos.

Prueba la frescura

Define quién puede ver un valor obsoleto, durante cuánto tiempo y la ruta de invalidación o revalidación.

05

Protege la capacidad de conexiones en vez de simplemente subir el techo

Una conexión es una sesión cliente activa hacia la base de datos. Workers, cron jobs, vistas previas o reintentos pueden agotar los slots incluso cuando consultas individuales parecen aceptables. max_connections de PostgreSQL controla las conexiones concurrentes, se establece al arrancar el servidor y un valor mayor asigna más recursos incluyendo memoria compartida. Subirlo sin un modelo de carga puede desplazar el fallo.

Establece un presupuesto único entre workers web, trabajos en segundo plano, administración y réplicas. Usa pooles acotados donde proceda, preserva margen para recuperación y aplica timeouts para que trabajo varado no espere indefinidamente. Números seguros dependen del motor, memoria, mezcla de consultas y límites del proveedor; confírmalo con el operador.

Cuenta cada cliente

Incluye procesos web, colas, tareas programadas, migraciones, herramientas de reporting y trabajos de despliegue.

Limita reintentos

Acota la concurrencia y usa backoff para que una falla no multiplique la demanda de conexiones.

06

Observa el coste de las consultas con contexto y controles de privacidad

Jerarquiza el trabajo de base de datos por impacto total, no por una muestra lenta. Una consulta moderadamente lenta llamada miles de veces puede importar más que un informe raro. pg_stat_statements de PostgreSQL agrega datos de planificación y ejecución incluyendo llamadas, tiempo total y medio de ejecución, filas y actividad de buffers. Requiere configuración del servidor y un reinicio para añadirse o quitarse; el seguimiento de planificación puede añadir sobrecarga.

Conecta grupos de consultas a ruta, versión de despliegue y ventana temporal. OpenTelemetry aconseja recoger texto de consulta por defecto solo tras sanitizar reemplazando literales, y usar un resumen de baja cardinalidad para agrupar. Esto ayuda a los responsables a ver tendencias sin exportar datos de clientes ni crear una etiqueta por cada valor.

Vigila cola y agregado

Revisa duración, tiempo total, llamadas, errores, conexiones y filas; cada uno expone un modo de fallo distinto.

Sanitiza la telemetría

Usa consultas parametrizadas y verifica que los literales se eliminan antes de que trazas o logs salgan de la aplicación.

07

Entrega cambios en la base de datos como trabajo de fiabilidad reversible

Trata un índice, reescritura, política de caché, ajuste de pool o cambio de esquema como un cambio en producción con un responsable, medida de éxito y decisión de reversión. Valida en un entorno representativo, despliega a una porción limitada y vigila el recorrido afectado. Más rápido no es éxito si el cambio devuelve datos erróneos, faltantes, duplicados o desactualizados.

Los cambios de esquema necesitan cuidado porque versiones de la aplicación pueden solaparse. La guía de Google Cloud describe una secuencia de compatibilidad: publica una aplicación que soporte esquema viejo y nuevo, cambia el esquema y luego publica la funcionalidad que lo usa. Esto preserva una ruta de reversión de la aplicación. El bloqueo y el comportamiento de cambio online difieren según el motor y el servicio gestionado; solicita revisión cualificada para sistemas de alto volumen o relacionados con pagos.

Predefine límites

Nombra la ruta, señales de rendimiento y corrección, y el umbral que detiene el despliegue.

Canary y expande

Verifica rendimiento y corrección en una porción controlada antes de ampliar; practica la ruta de regreso fuera de un incidente.

ACCIÓN / VERIFICAR

Tu guía práctica de tareas.

  1. 01

    Elige un recorrido

    Elige una página o transacción con consecuencia clara para el cliente.

    VERIFICAR: La ruta y el resultado correcto que debe preservar están nombrados.
  2. 02

    Mide la ruta

    Captura duración de la petición, número de consultas, duración en la base de datos, filas y comportamiento de conexiones.

    VERIFICAR: Existe una línea base fechada y no contiene valores sensibles.
  3. 03

    Ordena grupos de consultas

    Usa estadísticas y trazas para ordenar trabajo por tiempo total y volumen de llamadas.

    VERIFICAR: El equipo puede identificar la consulta costosa ligada al recorrido.
  4. 04

    Inspecciona un plan seguro

    Usa la herramienta de plan de la base de datos sobre una sentencia representativa.

    VERIFICAR: Filas esperadas vs reales y la operación costosa están registradas.
  5. 05

    Elige un cambio justificado

    Selecciona un ajuste de consulta, índice, paginación, caché o pool y sus compensaciones.

    VERIFICAR: El cambio tiene un responsable y evidencia de pruebas.
  6. 06

    Prueba la corrección

    Prueba orden, permisos, visibilidad de precio o inventario y alcance de caché cuando corresponda.

    VERIFICAR: Los datos esperados se devuelven para estados públicos y con sesión relevantes.
  7. 07

    Presupuesta conexiones

    Incluye clientes web, worker, programados, de reporting y administrativos.

    VERIFICAR: El total está por debajo del límite del servicio y permanece el acceso de recuperación.
  8. 08

    Canary y decide

    Despliega a una parte limitada, luego amplia o vuelve a la versión conocida buena.

    VERIFICAR: Señales de rendimiento, error, conexiones y corrección de datos apoyan la decisión.
TEMAS DE DISCUSIÓN

Compara las ventajas y desventajas; no compartas datos privados.

Usa estas preguntas con tu equipo o la comunidad de propietarios del sitio. Comparte métodos y lecciones, pero nunca pegues credenciales, registros de clientes ni detalles de infraestructura no públicos.

  1. 01

    ¿Qué recorrido de cliente reveló tu mejora de base de datos más valiosa, y qué mediste primero?

  2. 02

    ¿Cómo decide tu equipo cuándo una respuesta de catálogo o contenido es segura para una caché compartida?

  3. 03

    ¿Qué restricción de reversión ha influido más en la secuencia de tus despliegues de esquema y aplicación?

RECURSOS POPULARES / DE REFERENCIA

Consulta el material fuente.

PostgreSQL Global Development GroupUsing EXPLAIN ↗

Explica nodos de plan de consulta y lo que EXPLAIN ANALYZE mide.

Revisado 2026-09-27
PostgreSQL Global Development GroupIndexes and ORDER BY ↗

Muestra cuándo un índice B-tree puede proporcionar resultados ordenados.

Revisado 2026-09-27
PostgreSQL Global Development GroupLIMIT and OFFSET ↗

Documenta requisitos de orden estable y el coste de offsets grandes.

Revisado 2026-09-27
PostgreSQL Global Development GroupConnections and Authentication ↗

Define límites de conexión, slots reservados e implicaciones de recursos.

Revisado 2026-09-27
PostgreSQL Global Development Grouppg_stat_statements ↗

Detalla estadísticas a nivel de sentencia, necesidades de configuración y consideraciones de sobrecarga.

Revisado 2026-09-27
web.devPrevent unnecessary network requests with the HTTP Cache ↗

Orientación para Cache-Control, URLs versionadas e invalidación.

Revisado 2026-09-27
Google CloudReliable releases and rollbacks—CRE life lessons ↗

Guía de compatibilidad primero para cambios de esquema y reversiones de aplicación.

Revisado 2026-09-27
OpenTelemetrySemantic conventions for database client spans ↗

Guía de trazado de bases de datos para resúmenes y texto de consulta sanitizado.

Revisado 2026-09-27

Política de fuentes. Se utilizó documentación oficial para redactar este artículo. El consejo es condicional; los enlaces internos son navegación, no evidencia.

ACLARACIONES RÁPIDAS

Preguntas comunes.

¿Debo añadir un índice cada vez que una consulta es lenta?

No. Primero demuestra que la consulta importa e inspecciona su plan sobre datos representativos. Un índice puede mejorar una búsqueda coincidente o un resultado ordenado pequeño, pero cuesta en almacenamiento y trabajo de escritura; un escaneo de tabla puede ser preferible cuando una consulta necesita gran parte de la tabla.

¿Es OFFSET siempre un problema en la paginación?

No. Puede servir para páginas poco profundas con ORDER BY determinista. Revísalo para navegación profunda porque las filas omitidas aún deben calcularse; la paginación keyset suele merecer evaluación para navegación secuencial.

¿Puedo cachear una página de comercio en el CDN?

Solo después de clasificar y probar la respuesta. Contenido público repetible puede encajar en una caché compartida, mientras que carritos, datos de cuenta, salida específica de autorización y valores sensibles requieren manejo restrictivo. Busca revisión cualificada de seguridad o de pagos para flujos de pago relevantes.

Status Is UP Editorial Team · Editores de habilitación de disponibilidad

Revisado por Revisor de confiabilidad de bases de datos con contexto de aplicación, seguridad y despliegue. Publicado 2026-09-27; actualizado 2026-09-30.