Saltar al contenido
Volver a servicios

Bases de datos

Bases de datos rápidas, seguras y explicadas

La base de datos suele ser lo primero que se queda corto cuando un proyecto crece. Elegir bien, configurarla según tu servidor y organizar las tablas grandes marca la diferencia entre una página que vuela y una que se arrastra.

Desliza el diagrama para verlo entero

◆tiendaPHP⬢apiAdonisJS⌕Pedidos de octubreWHERE creado >= '2026-10-01'◫pedidos1.000.000+ filas▤pedidos_2026_07no se toca▤pedidos_2026_08no se toca▤pedidos_2026_09no se toca▤pedidos_2026_10se lee
  • Consultas de las aplicaciones
  • Solo se lee la partición que hace falta

Una tabla de pedidos con más de un millón de filas, dividida por meses. Cuando la tienda o la API piden los pedidos de octubre, PostgreSQL solo lee la partición de octubre y deja las demás sin tocar: menos disco, menos memoria y respuestas más rápidas.

MariaDB o PostgreSQL, listos

Al conectar un servidor eliges la base de datos y SERVILINUX la instala con la versión de tu sistema, escuchando solo dentro del servidor.

Compartida con tus otros servidores, sin abrirla al mundo

Si una aplicación de otro servidor necesita la base de datos, abres su puerto solo para esa IP con el firewall del panel.

Vigilada por Sentinel

Conexiones, consultas por segundo, caché y uso de disco de MariaDB y PostgreSQL, con alertas y su historial.

Eisac te ayuda a optimizarla

Pregúntale cómo ajustar la configuración a la memoria de tu servidor, qué índices faltan o cómo dividir una tabla que crece sin parar. Te explica cada cambio antes de aplicarlo.

Conversación de ejemplo
Mi servidor tiene 16 GB de RAM y disco SSD. ¿Cómo optimizo PostgreSQL para una tabla de pedidos con más de un millón de filas que consultamos sobre todo por mes?
Eisac

Primero, la memoria. Con 16 GB y la base de datos como servicio principal, este es un buen punto de partida:

# /etc/postgresql/17/main/conf.d/servilinux.conf
# 16 GB de RAM, disco SSD
shared_buffers = 4GB
effective_cache_size = 12GB
work_mem = 32MB
maintenance_work_mem = 1GB
random_page_cost = 1.1
effective_io_concurrency = 200

Después, divide la tabla por meses. Así cada consulta lee solo el mes que necesita y archivar meses antiguos es inmediato:

CREATE TABLE pedidos (
  id          bigserial,
  creado      timestamptz NOT NULL,
  cliente_id  bigint NOT NULL,
  total       numeric(12,2),
  PRIMARY KEY (id, creado)
) PARTITION BY RANGE (creado);

CREATE TABLE pedidos_2026_10 PARTITION OF pedidos
  FOR VALUES FROM ('2026-10-01') TO ('2026-11-01');

CREATE INDEX ON pedidos (cliente_id, creado);

Crea la partición de cada mes antes de que empiece; puedes programar una tarea que lo haga sola. Si en tu servidor también corren las aplicaciones, baja shared_buffers a 3 GB. ¿Quieres que revise antes las consultas más lentas?

Próximamente en el panel: crear bases y usuarios con contraseñas que nunca viajan en claro, copias programadas con restauración y acceso seguro desde DBeaver o TablePlus.

En SERVILINUX

Cómo se hace

  1. 1
    Elige tu base de datos

    MariaDB o PostgreSQL al conectar el servidor.

  2. 2
    Conecta tu proyecto

    Pon los datos de conexión en las variables del proyecto.

  3. 3
    Actívala en Sentinel

    Sus métricas y alertas aparecen junto a las del servidor.

  4. 4
    Optimiza con Eisac

    Configuración, índices y particiones explicados paso a paso.