🏆 Mundial 2026 EN VIVO · Próximo: Inglaterra vs Argentina entra →

Rendimiento de las bases de datos MySQL vs. PostgreSQL

  • Autor Autor El suqve
  • Fecha de inicio Fecha de inicio
El suqve

El suqve

Gamma
Verificación en dos pasos activada
Verificado por Whatsapp
Hola betas. que tal

Rendimiento de las bases de datos (MySQL vs. PostgreSQL) en sitios de alto tráfico: ¿Qué ajustes de configuración o caché han realizado en la base de datos para manejar picos de tráfico sin colapsar la web? Consejos para desarrolladores con sitios dinámicos. ¿Cómo han salido de este percance betas?

Saludos.
 
Hmm bueno por experiencia se que PostgreSQL tiende a manejar concurrencia y cargas complejas muy bien si lo tienes bien tuneado, hay muchas cosas que se pueden hacer en configuración como limitar trabajo no esencial, activar cache de lectura, degradación controlada, osea tipo modo lectura/solo-cache o página estática para usuarios.

Algunos knobs clave en PostSQL que recomiendo porque son muy buenos trucazos son:

shared_buffers: este asigna ≈ 25% de RAM al comienzo (ajusta según carga).

work_mem: memoria por operación de sort, ajústala para evitar swaps pero sin ponerla muy alta porque se multiplica por conexiones

max_connections: no ponerlo demasiado alto, usa PgBouncer (pooling) para manejar muchas conexiones concurrentes eficientemente.

Otra recomendación es que emplementes caching desde el día 1 aunque con TTLs cortos, añadir caché luego es MUCHO más doloroso, ah y hacer tests de carga antes de eventos tipo black friday, lanzamientos, percona y otros tienen checklists de preparación.
 
Implementa cache con Redis y siempre ten el fallback para obtener la información de la base de datos.
Con eso tu carga en la base de datos se reducirá significativamente, ya que la información se obtendría primero de Redis que es mas rápido y eficiente, en caso de no obtenerla de Redis, la intentas de la base de datos.
 
Buenas!

Algunas cosas básicas que suelen salvar en picos.

Algún sistema de caché (Redis/Memcached) para no pegarle a la DB en cada request.
Índices bien puestos, no de más
Controlar conexiones simultáneas (pooling)
Revisar queries lentas, muchas veces ahí está el cuello
 
Atrás
Arriba