27 dic 2025·8 min de lectura

Réplicas de lectura de PostgreSQL para informes: mantén los paneles rápidos

Usa réplicas de lectura de PostgreSQL para informes y mantén los paneles rápidos, protegiendo tu base de datos primaria de consultas lentas, picos y presión de bloqueos.

Réplicas de lectura de PostgreSQL para informes: mantén los paneles rápidos

Por qué el reporting puede ralentizar tu base de datos primaria

Un patrón común es este: la app va bien la mayor parte del día, pero cuando alguien abre un panel, las compras, los inicios de sesión o las herramientas de soporte empiezan a ir lentas. No hay nada “caído”, pero todo está más lento. Normalmente es tu base de datos primaria tirada en dos direcciones a la vez.

Las transacciones (el trabajo diario de la app) son cortas y selectivas. Leen o actualizan pocas filas, usan índices y terminan rápido para que otras peticiones puedan continuar. Las consultas de reporting se comportan distinto. A menudo escanean muchos datos, unen varias tablas, ordenan y agrupan resultados, y calculan totales por días o meses. Incluso cuando no bloquean escrituras directamente, pueden comerse los mismos recursos compartidos que tu app necesita.

Estas son las formas habituales en que los dashboards perjudican a una base de datos OLTP:

  • Lecturas intensas compiten por CPU, memoria y E/S de disco
  • Escaneos grandes expulsan páginas “calientes” de la caché, así las consultas normales se vuelven más lentas
  • Grandes ordenaciones y GROUP BYs derraman a disco y generan picos de carga
  • Consultas de larga duración aumentan la contención y hacen que los picos duren más
  • Filtros ad hoc (rangos de fecha, segmentos) hacen la carga impredecible

Una réplica de lectura es un servidor PostgreSQL separado que copia continuamente los datos de tu servidor primario y puede servir consultas de solo lectura. Usar réplicas de lectura de PostgreSQL para informes permite que los dashboards realicen su trabajo pesado en otro sitio, de modo que la primaria se concentre en transacciones rápidas.

La expectativa que debes dejar clara desde el principio: las réplicas ayudan a las lecturas, no a las escrituras. No puedes enviar inserts/updates a una réplica estándar de forma segura, y los resultados pueden estar algo retrasados respecto a la primaria porque la replicación lleva tiempo. Para muchos dashboards ese es un buen trade-off: números un poco menos “frescos” a cambio de un rendimiento consistente en la app.

Si construyes dashboards internos (por ejemplo en AppMaster) esta separación suele encajar bien: la app sigue escribiendo en la primaria, mientras las pantallas de reporting consultan la réplica.

Cómo funcionan las réplicas de lectura en PostgreSQL (en lenguaje sencillo)

Una réplica de lectura de PostgreSQL es un segundo servidor de base de datos que mantiene una copia casi en tiempo real de tu base de datos principal. La primaria gestiona las escrituras (INSERT, UPDATE, DELETE). La réplica sirve principalmente lecturas (SELECT), de modo que las consultas de reporting no compiten con las transacciones del día a día.

Primaria vs réplica en un minuto

Piensa en la primaria como el cajero de una tienda concurrida: debe mantenerse receptivo porque cada venta actualiza stock, pagos y pedidos. Una réplica es como una pantalla que muestra totales y tendencias. Vigila lo que hace el cajero y actualiza su propia vista poco después.

A nivel técnico, PostgreSQL copia los cambios enviando un flujo de lo que cambió en la primaria y reproduciéndolo en la réplica. Eso significa que la réplica acaba con la misma estructura y datos, solo con un pequeño retraso.

En términos prácticos, la replicación copia:

  • Los datos de las tablas (filas)
  • Los cambios en índices (para que las consultas puedan usar los mismos índices)
  • Cambios de esquema (como nuevas columnas, nuevas tablas y muchos tipos de migraciones)
  • La mayoría de los demás cambios de base de datos que se realizan mediante SQL normal

Lo que una réplica no soluciona: no hará que las escrituras pesadas sean mágicamente más baratas, ni arreglará una consulta lenta causada por un esquema deficiente o índices faltantes. Si tu consulta de dashboard escanea una tabla enorme en la réplica, aún puede ser lenta. Simplemente no ralentizará el checkout al mismo tiempo.

Por eso las réplicas de lectura de PostgreSQL para informes son populares: separan el trabajo OLTP (transacciones rápidas y frecuentes) del trabajo tipo OLAP (lecturas largas, agrupaciones y totales). Si construyes dashboards internos o paneles administrativos (por ejemplo en AppMaster), apuntar las páginas de reporting a una réplica suele ser la forma más sencilla de mantener ambas partes contentas.

Cargas comunes de reporting que deben ir a una réplica

Una buena regla: si una consulta lee principalmente muchos datos para resumirlos, es buena candidata a ejecutarse en una réplica. Con réplicas de lectura de PostgreSQL para informes, proteges los flujos de checkout, inicios de sesión y otras operaciones transaccionales del trabajo pesado que suelen requerir los dashboards.

El patrón de dashboard más común es un amplio rango de fechas más algunos filtros. “Últimos 90 días por región, producto y canal” puede tocar fácilmente millones de filas, incluso cuando el gráfico final muestra solo 12 barras. Esos escaneos compiten con tu base de datos primaria por lecturas de disco y espacio en caché.

Cargas que encajan bien en una réplica

La mayoría de los equipos empieza moviendo esto a la base de reporting:

  • Joins grandes entre varias tablas (orders + items + customers + refunds)
  • Agregaciones como SUM, COUNT DISTINCT, cálculos de percentiles, cohorts
  • Consultas de larga duración que ordenan y agrupan grandes conjuntos
  • Informes programados que se ejecutan cada hora/día y rehacen el mismo trabajo pesado
  • Sesiones exploratorias de BI donde la gente hace clic y rehace variaciones

Aunque una consulta sea “solo lectura”, puede consumir CPU, memoria y E/S. Grandes operaciones GROUP BY pueden expulsar otras consultas de la memoria. Escaneos repetidos pueden agitar la caché de buffers, de modo que la primaria empiece a leer más desde disco.

El comportamiento de las conexiones también importa. Muchas herramientas de BI abren múltiples conexiones por usuario, actualizan tiles cada pocos minutos y ejecutan extractos en segundo plano. Eso puede crear picos súbitos en conexiones y consultas concurrentes. Una réplica da a esos picos un sitio más seguro donde aterrizar.

Un ejemplo simple: tu dashboard de operaciones carga a las 9:00 y 50 personas lo abren a la vez. Cada vista de página dispara varios widgets, y cada widget ejecuta una consulta con un filtro distinto. En la primaria, ese estallido puede ralentizar la creación de pedidos. En una réplica, el dashboard puede ir más lento o estar ligeramente desactualizado, pero tus transacciones se mantienen rápidas.

Si construyes dashboards internos dentro de una plataforma como AppMaster, apuntar las pantallas de reporting a una conexión de réplica suele ser una victoria fácil, siempre que todos entiendan que los datos pueden tardar unos segundos (o minutos) en llegar.

El intercambio: frescura vs velocidad (retraso de replicación)

Una réplica de lectura mantiene los dashboards rápidos porque quita las consultas de reporting de tu base primaria. El coste es que la réplica suele estar algo retrasada. Ese retraso se llama replication lag, y es el intercambio principal al usar réplicas de lectura de PostgreSQL para informes.

Lo que los usuarios notan es simple: el número de “hoy” está un poco bajo, faltan los últimos pedidos o un gráfico se actualiza unos minutos tarde. A la mayoría no le importa que una tendencia semanal esté 2 minutos desfasada, pero sí les molesta si una vista de “pago reciente” está equivocada.

El lag ocurre cuando la primaria genera cambios más rápido de lo que la réplica puede recibir y reproducir. Causas comunes incluyen picos de escritura (ventas flash, importaciones), ancho de banda de red limitado, discos lentos en la réplica o consultas largas que compiten por CPU y E/S mientras la réplica intenta aplicar cambios.

Una forma práctica de elegir el lag aceptable es emparejarlo con la decisión que soporta el dashboard:

  • Dashboards ejecutivos de KPIs: segundos a pocos minutos suele estar bien.
  • Colas operativas (envíos, soporte): objetivo cercano al tiempo real, normalmente segundos.
  • Cierre financiero o auditorías: ejecutar sobre una snapshot controlada, no “en vivo”.
  • Vistas orientadas al cliente “mis pedidos recientes”: cercano al tiempo real, o usar la primaria.

Regla simple: si un informe debe incluir la última transacción comprometida, debe consultar la primaria (o un sistema diseñado para frescura garantizada). Ejemplos típicos: disponibilidad de inventario durante el checkout, chequeos antifraude y cualquier cosa que desencadene una acción inmediata.

Ejemplo: un dashboard para ventas puede leer de una réplica y actualizarse cada minuto sin problema. Pero la página de “confirmación de pedido” debería leer de la primaria, porque mostrar “pedido no encontrado” para un pedido recién hecho es garantía de ticket de soporte.

Si tu app o herramienta no-code permite elegir la conexión de base de datos (por ejemplo, apuntar pantallas de solo lectura a una réplica en AppMaster), puedes aplicar esta separación sin cambiar cómo el equipo construye la UI.

Paso a paso: configurar réplicas de lectura para dashboards

Diseñar para casi tiempo real
Crea paneles de administración y KPI que toleren lag y sigan respondiendo.
Comenzar

Configurar una réplica para dashboards se trata sobre todo de tomar unas pocas decisiones claras desde el principio y, luego, mantener el tráfico de reporting fuera de tu primaria.

1) Da la forma correcta primero

Empieza por la topología. Una réplica suele ser suficiente para una sola herramienta de BI y unos pocos dashboards. Varias réplicas ayudan cuando tienes muchos analistas o varias herramientas consultando todo el día. Si tus usuarios están lejos de la región principal, una réplica regional puede reducir latencia para los dashboards, pero también añade más lugares que monitorizar.

Luego, elige replicación síncrona o asíncrona. La síncrona da la mejor frescura pero puede ralentizar las escrituras, lo que para muchos equipos anula el propósito. Asíncrona es la elección habitual para dashboards, siempre que todos acepten que los datos pueden llegar con cierto retraso.

2) Construye la réplica como un servidor de reporting

Una réplica no es una copia barata de producción. Las consultas de reporting suelen necesitar más CPU, más memoria para ordenar y discos rápidos para escaneos.

Aquí tienes un flujo práctico de configuración para réplicas de lectura de PostgreSQL para informes:

  • Decide cuántas réplicas necesitas y dónde deben ubicarse (misma región o cerca de los usuarios).
  • Elige async vs sync según cuánto retraso toleren los dashboards.
  • Provisiona recursos para trabajo de lectura intensiva (CPU, RAM y IOPS de disco suelen importar más que el tamaño de almacenamiento).
  • Crea credenciales separadas y de solo lectura para usuarios y herramientas de reporting.
  • Enruta las consultas del dashboard a la réplica (configura tu app, la herramienta BI o un pequeño servicio de reporting para usar la conexión de réplica).

Después de enrutar, valida con una prueba sencilla: ejecuta una consulta pesada conocida del dashboard y confirma que ya no aparece en la actividad de la base primaria.

Si construyes apps con AppMaster, normalmente significa definir una conexión de base de datos separada para reporting y usarla solo en los endpoints del dashboard, de modo que checkout y otros flujos transaccionales conserven su propio camino rápido.

Control de acceso y seguridad para usuarios de reporting

Una réplica de lectura es ideal para dashboards, pero aún necesita límites. Trátala como un recurso compartido: da a las herramientas de reporting solo el acceso necesario y limita cuánto daño puede causar una consulta mala.

Empieza con un usuario de base de datos separado para reporting. Evita reutilizar las credenciales principales de la app, incluso si apuntas a la réplica. Esto facilita auditar la actividad, rotar contraseñas y mantener privilegios estrictos.

Aquí tienes un enfoque simple que encaja con la mayoría de equipos:

-- Create a dedicated login
CREATE ROLE report_user LOGIN PASSWORD '...';

-- Allow read-only access to a schema
GRANT CONNECT ON DATABASE yourdb TO report_user;
GRANT USAGE ON SCHEMA public TO report_user;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO report_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA public
  GRANT SELECT ON TABLES TO report_user;

-- Put safety limits on the role
ALTER ROLE report_user SET statement_timeout = '30s';
ALTER ROLE report_user SET idle_in_transaction_session_timeout = '15s';

A continuación, controla los picos de conexiones. Los dashboards y herramientas BI suelen abrir muchas conexiones, especialmente cuando varios widgets se actualizan a la vez. Limita las conexiones de reporting en la base de datos y en tu pooler, y mantenlas separadas del tráfico transaccional.

Una lista práctica:

  • Usa un usuario de solo lectura (sin INSERT/UPDATE/DELETE, sin cambios de esquema).
  • Establece timeouts por rol para consultas largas y sesiones inactivas.
  • Limita el máximo de conexiones para usuarios de reporting a un número seguro.
  • Restringe el acceso solo a los esquemas y tablas que necesita un dashboard.
  • Enmascara o excluye columnas sensibles (PII, secretos, tokens) de las vistas de reporting.

Si necesitas mostrar datos parciales de clientes, no confíes en “la gente será cuidadosa”. Crea vistas de reporting que oculten o hasheen campos sensibles, o mantiene un esquema de reporting curado. Cuando los equipos construyen dashboards con AppMaster, usa la cadena de conexión de la réplica y el usuario de reporting dedicado para que la app generada lea con seguridad sin tocar el acceso de escritura de producción.

Estos controles mantienen las réplicas de lectura de PostgreSQL para informes rápidas, previsibles y mucho más difíciles de usar mal.

Monitorización para mantener las sorpresas fuera de tus dashboards

Haz una app de reporting real
Convierte tus métricas en una app web con lógica de negocio y acceso por roles.
Crear una app

Una réplica solo ayuda si se comporta de forma predecible. Las dos cosas que suelen sorprender a los equipos son el retraso de replicación silencioso (los dashboards se ven “mal”) y los picos de recursos en la réplica (los dashboards se vuelven lentos). La monitorización debería detectar ambos antes que tus usuarios.

Empieza midiendo el lag y acordando qué significa “suficientemente fresco” para tu negocio. Para muchos dashboards de reporting, 30 a 120 segundos está bien. Para otros (como inventario o fraude), incluso 5 segundos puede ser demasiado. Sea lo que sea, conviértelo en un número visible y genera alertas.

Señales prácticas para vigilar en réplicas de lectura de PostgreSQL para informes:

  • Retraso de replicación (tiempo y bytes). Alerta cuando exceda tu umbral durante varios minutos, no solo un pico aislado.
  • Salud de la réplica: presión de CPU, memoria y lectura de disco durante las horas pico de reporting.
  • Saturación de conexiones en la réplica (demasiadas sesiones de dashboard pueden parecer “la BD está lenta”).
  • Consultas lentas en la réplica, usando las propias estadísticas y logs de la réplica (no asumas que la primaria cuenta toda la historia).
  • Autovacuum y bloat en la réplica. Las lecturas pueden degradarse cuando tablas o índices se hinchan.

El seguimiento de consultas lentas merece atención especial. Un modo de fallo común es un dashboard que funcionó en pruebas pero se convierte en un “festival de escaneos completos” en producción. Asegúrate de que la réplica tenga la misma monitorización que usas en la primaria, incluyendo las consultas principales por tiempo total y por tiempo medio.

Finalmente, decide con antelación qué hace tu app cuando la réplica no está disponible o está demasiado retrasada. Elige un comportamiento e implémentalo de forma consistente:

  • Mostrar un banner “datos retrasados” cuando el lag supere el umbral.
  • Desactivar temporalmente los gráficos más pesados y mantener resúmenes ligeros.
  • Volcar a resultados cacheados por una ventana fija (por ejemplo, últimos 15 minutos).
  • Enrutar lecturas críticas de vuelta a la primaria solo para pantallas específicas.
  • Poner los dashboards en modo mantenimiento de solo lectura hasta que la réplica se recupere.

Si construyes dashboards internos en AppMaster, trata la réplica como una fuente de datos separada: monitorízala por separado y diseña los dashboards para degradarse de forma elegante cuando la frescura o el rendimiento bajen.

Errores comunes y trampas que evitar

De esquema a panel
Modela tus datos y genera apps listas para producción sin escribir backend.
Pruébalo ahora

Una réplica ayuda, pero no es un botón mágico que haga el reporting “gratis”. La mayoría de los problemas con réplicas vienen de tratarlas como un almacén analítico ilimitado y luego sorprenderse cuando los dashboards se vuelven lentos o incorrectos.

Un fallo fácil de cometer: las réplicas también se pueden sobrecargar. Unos pocos escaneos de tablas amplias, joins pesados o exportaciones con “SELECT *” pueden empujar CPU y disco y causar timeouts. Si la réplica está en hardware más pequeño que la primaria (algo común para ahorrar dinero), la ralentización aparece incluso antes.

Estas son las trampas que causan más dolor:

  • Enrutar pantallas críticas en tiempo real a la réplica. Si un dashboard se usa para confirmar un checkout recién hecho o mostrar inventario en vivo, el lag puede hacer que los datos parezcan faltar.
  • Dejar que las herramientas BI abran demasiadas conexiones. Algunas herramientas refrescan muchos tiles a la vez y cada tile puede abrir su propia sesión.
  • Asumir que los índices lo solucionan todo. Un índice no arregla una consulta que extrae millones de filas, agrupa por claves equivocadas o une sin límites. La forma de la consulta y el volumen de datos importan más que un índice extra.
  • Olvidar que “rápido una vez” no es “rápido siempre”. Una consulta que va bien por la mañana puede arrastrarse cuando los datos crecen o cuando varias personas actualizan el mismo informe.
  • No planificar el comportamiento durante failover. Durante un failover, una réplica puede ser promovida o reemplazada, y los clientes pueden recibir errores de solo lectura o endpoints obsoletos si no planificas el cambio.

Un ejemplo realista: tu herramienta de BI refresca una página de “pedidos de hoy” cada minuto. Si ejecuta cinco consultas pesadas por refresco y 20 personas la tienen abierta, son 100 ráfagas de consultas pesadas por minuto. La primaria puede mantenerse segura, pero la réplica aún puede ceder.

Si construyes dashboards internos con una plataforma como AppMaster, trata la base de reporting como un objetivo separado con sus propios límites de conexión y reglas de “frescura requerida”, para que los usuarios no dependan accidentalmente de datos desfasados.

Patrones de diseño que aceleran el reporting en una réplica

Una réplica te da margen, pero no hace automáticamente que todo dashboard sea rápido. Los mejores resultados vienen de dar forma a tus consultas de reporting para que hagan menos trabajo y lo hagan de forma más predecible. Estos patrones funcionan bien con réplicas de lectura de PostgreSQL para informes porque reducen escaneos pesados y agregaciones repetidas.

Separa la “capa de reporting”

Considera un esquema de reporting dedicado (por ejemplo, reporting) que contenga vistas estables y tablas auxiliares. Esto evita que las herramientas BI peguen directamente a tablas transaccionales crudas y te da un sitio para optimizar. Una buena vista de reporting también oculta joins complejos para que la consulta del dashboard sea simple.

Pre-agrega lo caro

Si un dashboard recalcula los mismos totales todo el día (ingresos diarios, pedidos por estado, productos principales), deja de calcularlo todo desde cero en cada carga. Construye tablas resumen o vistas materializadas que almacenen esos números ya agrupados.

Opciones comunes:

  • Rollups diarios u horarios (por fecha, región, canal)
  • Tablas snapshot del “último conocido” (inventario, saldo de cuenta)
  • Tablas Top-N (productos principales, clientes principales)
  • Tablas de hechos con columnas desnormalizadas para filtros más rápidos

Actualiza métricas pesadas con programación

Actualiza las pre-aggregaciones con jobs programados, idealmente fuera de pico. Si el negocio puede vivir con “actualizado cada 5 minutos”, puedes canjear un pequeño retraso por dashboards mucho más rápidos. Para datasets muy grandes, las actualizaciones incrementales (solo filas nuevas desde la última ejecución) suelen ser más económicas que refreshes completos.

Cachea lo que los usuarios piden constantemente

Si los mismos widgets del dashboard se solicitan una y otra vez, cachea los resultados en la capa de app por un corto tiempo (30 a 120 segundos suele ser suficiente). Por ejemplo, un tile “Ventas de hoy” puede cachearse por compañía o tienda. En herramientas como AppMaster, este tipo de caché es fácil de añadir alrededor del endpoint API que alimenta el dashboard.

Una regla simple: si una consulta es lenta y popular, o la pre-agregas, o la cacheas, o ambas.

Un ejemplo realista: reporting de ventas sin ralentizar el checkout

Enviar reporting sin estresar la BD
Crea pantallas internas de reporting rápido con una conexión separada de solo lectura.
Empezar a crear

Imagina una app de e-commerce pequeña. La base principal gestiona inicios de sesión, carritos, pagos y actualizaciones de pedidos todo el día. Al mismo tiempo, el equipo quiere un dashboard que muestre ingresos por hora, productos top y reembolsos.

Antes de cualquier cambio, el dashboard ejecuta consultas pesadas en la base primaria. Cerca del fin de mes, alguien abre un gráfico “últimos 30 días por producto” y escanea una gran parte de la tabla de orders. El checkout empieza a sentirse lento porque esas consultas de reporting compiten por la misma CPU, memoria y lecturas de disco.

La solución es simple: mueve las lecturas del dashboard a una réplica. Con réplicas de lectura de PostgreSQL para informes, la primaria sigue haciendo escrituras rápidas, mientras la réplica responde lecturas largas. El dashboard apunta a la cadena de conexión de la réplica, no a la primaria.

El equipo también establece reglas claras de frescura para que nadie espere números perfectos en tiempo real:

  • Mostrar “Datos actualizados hace X minutos” en el dashboard
  • Permitir hasta 5 minutos de retraso en horas normales
  • Si el lag supera 10 minutos, cambiar el dashboard a “modo retrasado” y pausar los gráficos más pesados
  • Mantener checkout y actualizaciones de pedidos siempre en la primaria

Después del cambio, el resultado es evidente. El checkout se mantiene estable incluso durante picos de reporting, y los gráficos cargan rápido porque ya no compiten con las transacciones.

Lo que los usuarios deben entender es sencillo: el dashboard es “casi en tiempo real”, no la fuente de verdad para los últimos 10 segundos. Si alguien necesita totales exactos para conciliación, debe ejecutar una exportación programada o un informe de fin de día.

Si construyes la app con una plataforma como AppMaster, trata el reporting como una conexión de solo lectura separada desde el día uno para que tus flujos transaccionales sigan siendo predecibles.

Comprobaciones rápidas y siguientes pasos

Antes de apuntar los dashboards a una réplica, haz una revisión rápida de sentido común. Unos pocos ajustes y hábitos evitan las sorpresas más comunes: números desfasados, timeouts y escrituras accidentales.

Lista rápida de verificación antes de enviar tráfico a una réplica:

  • Haz las conexiones de reporting de solo lectura (usa un usuario dedicado y aplica transacciones de solo lectura).
  • Separa el reporting del tráfico de la app (pools de conexión propios y límites sensatos).
  • Confirma que la réplica tiene los índices que tus dashboards necesitan (las réplicas copian índices, pero verifica que no falten cambios recientes).
  • Establece timeouts de statement y locks para consultas de reporting para que un gráfico malo no cuelgue todo.
  • Valida que los gráficos toleren pequeños retrasos (muestra timestamps “al” o redondea a minutos cuando haga falta).

Una vez el tráfico fluya, trata la monitorización como una rutina semanal ligera, no como una alarma constante. Esto es especialmente cierto para réplicas de lectura de PostgreSQL para informes, donde “funcionó ayer” puede cambiar rápido cuando crece el volumen de datos.

Lista semanal de monitorización (10 minutos):

  • Lag de replicación: vigila el lag típico y los peores picos en horas punta.
  • Consultas lentas: rastrea a los mayores culpables por tiempo total, no solo ejecuciones aisladas.
  • Conexiones: revisa conexiones máximas, saturación del pool y conexiones inactivas acumuladas.
  • Disco y CPU: las réplicas pueden bloquearse por almacenamiento durante escaneos intensos.
  • Consultas fallidas: busca timeouts, sentencias canceladas o errores de permisos.

Los siguientes pasos tratan principalmente sobre reglas de enrutamiento y un plan de contingencia. Decide qué endpoints siempre son seguros para leer desde la réplica (dashboards, exportaciones, informes administrativos) y cuáles deben quedarse en la primaria (todo lo que requiera estar al segundo). Define qué ocurre cuando el lag cruza tu límite: mostrar un banner de advertencia, volver a enrutar lecturas a la primaria para un subconjunto de páginas, o desactivar temporalmente los gráficos más pesados.

Si construyes dashboards o herramientas administrativas, AppMaster puede ser una forma práctica de entregarlos rápido apuntando las pantallas de reporting a una réplica para que tu app transaccional principal siga funcionando sin problemas.

Fácil de empezar
Crea algo sorprendente

Experimente con AppMaster con plan gratuito.
Cuando esté listo, puede elegir la suscripción adecuada.

Empieza
Réplicas de lectura de PostgreSQL para informes: mantén los paneles rápidos | AppMaster