A medida que tu aplicación crece, tu base de datos puede convertirse en un cuello de botella en tu sistema sin la infraestructura o las modificaciones adecuadas. Los ingenieros suelen enfrentarse a una difícil decisión cuando se produce un aumento repentino del tráfico: ¿deberían aumentar la potencia del servidor actual o agregar más servidores al sistema? En esta guía, se explica la diferencia entre el escalamiento horizontal y vertical, las ventajas y desventajas de cada uno, y cómo elegir el enfoque adecuado para tus necesidades.
El escalamiento de bases de datos es el proceso de aumentar la capacidad, el rendimiento y la disponibilidad de un sistema. Permite que tu base de datos maneje más datos y se mantenga al día con un número creciente de usuarios.
En la industria, los expertos usan dos términos principales para este proceso. El escalamiento vertical es “escalar verticalmente”, mientras que el escalamiento horizontal es “escalar horizontalmente”. Comprender estas dos rutas es el primer paso para crear un sistema de datos confiable.
El escalamiento vertical, también conocido como escalamiento vertical, incluye agregar más potencia a tu servidor existente. Mantienes el mismo nodo de base de datos, pero le das más CPU, memoria o almacenamiento para que haga su trabajo.
Por lo general, esta es la forma tradicional de escalar bases de datos relacionales. Mantiene la arquitectura simple porque todos tus datos siguen estando en un solo lugar.
Beneficios
Desafíos
Los servicios de bases de datos administradas, como Cloud SQL, pueden facilitar el escalamiento vertical, ya que te permiten cambiar el tamaño de la máquina con solo unos clics, pero es importante recordar que es posible que aún alcances esos límites de hardware físico.
A pequeña escala: Imagina una startup de rápido crecimiento que ejecuta una app web en una sola base de datos. Cuando el tráfico comienza a aumentar, pueden pasar a una instancia más grande, lo que, a su vez, les da más potencia de procesamiento para manejar los visitantes adicionales sin necesidad de reescribir el código de la aplicación.
Escala empresarial: Una gran empresa con un sistema heredado también podría usar el escalamiento vertical. Estos sistemas suelen depender de relaciones complejas entre los datos. Como el código está diseñado para una sola base de datos, pueden escalar verticalmente con más potencia en esa máquina en lugar de intentar migrar a un sistema distribuido.
Necesidades internas: Algunas empresas también usan el escalamiento vertical para la generación de informes internos. Podrían agregar más RAM a su servidor de base de datos principal para que pueda procesar consultas grandes y con muchos recursos más rápido sin ralentizar la experiencia de los usuarios habituales.
El escalamiento horizontal, o escalar horizontalmente, indica agregar más máquinas a tu sistema de base de datos en lugar de hacer que una máquina sea más potente, lo que distribuye el trabajo en un grupo de servidores. Es un concepto fundamental en la computación en la nube y los sistemas distribuidos modernos.
Los ingenieros usan técnicas como fragmentación, en la que se dividen tus datos en fragmentos más pequeños en diferentes servidores, y replicación, en la que se copian datos en varios nodos, para que esto funcione.
Beneficios
Desafíos
Una base de datos SQL distribuida como Spanner puede ayudarte a administrar estos desafíos. Spanner se encarga de la difícil tarea de sincronizar los datos en varias máquinas por ti, por lo que no tienes que dividir tus datos manualmente ni perder la seguridad de una base de datos relacional. Esto te permite escalar horizontalmente sin que tu sistema sea demasiado complejo.
Capacidad: Una plataforma global de comercio electrónico podría usar el escalamiento horizontal durante grandes evento de ofertas. Cuando millones de personas visitan el sitio a la vez, el sistema puede volver a equilibrar automáticamente los datos en los nodos nuevos para manejar el tráfico, lo que garantiza que ningún servidor se sobrecargue.
Redundancia: Las aplicaciones financieras fundamentales a veces también usan el escalamiento horizontal. Pueden distribuir su base de datos en varias ubicaciones físicas, conocidas como zonas de disponibilidad. Esta configuración ayuda a garantizar que, si un centro de datos tiene un problema, la aplicación siga funcionando, lo que mantiene su promesa de coherencia de los datos.
Proximidad: Una empresa global de videojuegos podría implementar nodos de bases de datos en diferentes partes del mundo. La ubicación de un nodo de la base de datos más cerca del jugador permite ofrecer una experiencia rápida y fluida con una latencia muy baja. Por ejemplo, si un jugador vive en Tokio, sus datos de perfil se almacenan en un nodo de base de datos de Tokio para lecturas y escrituras ultrarrápidas.
Cuando hablamos de escalamiento en la nube, el escalamiento vertical significa actualizar el tamaño de la máquina virtual que aloja tu base de datos. El escalamiento horizontal implica agregar más instancias de máquinas a un grupo de escalado automático o un clúster distribuido.
Algunas empresas usan una combinación de ambos métodos, lo que se denomina escalamiento diagonal. Con este enfoque, agregas más nodos a tu sistema (escalamiento horizontal) y actualizas la capacidad de hardware (escalamiento vertical). Las grandes empresas pueden usar esto para obtener lo mejor de ambos mundos, lo que garantiza que su base de datos tenga alta disponibilidad y sea lo suficientemente potente para tareas locales complejas.
Sí. Si bien tradicionalmente era difícil, las bases de datos SQL distribuidas modernas como Spanner usan sincronización de reloj avanzada y protocolos inteligentes para permitir el escalamiento horizontal mientras mantienen tus datos organizados y precisos.
Presta atención a las señales de advertencia, como el uso elevado de CPU o memoria, los tiempos de consulta lentos y el aumento del retraso para los usuarios durante las horas de mayor actividad. Todos estos son signos de que tu base de datos actual podría tener dificultades para mantenerse al día.
La principal diferencia entre el escalamiento horizontal y el vertical es cómo agregan recursos a tu sistema. El escalamiento vertical aumenta la potencia de una máquina, mientras que el escalamiento horizontal agrega más máquinas a tu red.
Función | Escalamiento vertical | Escalamiento horizontal |
Concepto | Agregar recursos a una máquina | Agregar más máquinas a la red |
Capacidad | Límites de hardware estrictos | Prácticamente sin límites |
Tiempo de inactividad | Por lo general, requiere tiempo de inactividad | Sin tiempo de inactividad (los nodos se agregan de forma dinámica) |
Complejidad | Más bajo (arquitectura simple) | Más alto (requiere lógica distribuida) |
Costo | Costos más altos para hardware grande | Escalamiento lineal con máquinas estándar |
Función
Escalamiento vertical
Escalamiento horizontal
Concepto
Agregar recursos a una máquina
Agregar más máquinas a la red
Capacidad
Límites de hardware estrictos
Prácticamente sin límites
Tiempo de inactividad
Por lo general, requiere tiempo de inactividad
Sin tiempo de inactividad (los nodos se agregan de forma dinámica)
Complejidad
Más bajo (arquitectura simple)
Más alto (requiere lógica distribuida)
Costo
Costos más altos para hardware grande
Escalamiento lineal con máquinas estándar
Hay varias ideas obsoletas sobre las bases de datos NoSQL y SQL que continúan circulando en la industria. Gran parte de la dificultad para el escalamiento de las bases de datos SQL tradicionales se centra en cómo manejan las uniones y la coherencia de los datos. Distribuir una base de datos relacional en muchos servidores puede ser un desafío técnico, pero las soluciones distribuidas modernas resolvieron muchos de estos problemas, lo que permite a los desarrolladores escalar SQL horizontalmente sin perder las funciones relacionales que necesitan. Estos son tres conceptos erróneos comunes y la verdad detrás de ellos:
Verdadero: Sí pueden. Si bien los diseños relacionales más antiguos favorecían el escalamiento vertical, los sistemas SQL distribuidos modernos permiten que las bases de datos relacionales se distribuyan entre varias máquinas. Este enfoque combina la coherencia de SQL con la potencia de crecimiento horizontal de la arquitectura de nube moderna.
Verdadero: NoSQL es eficaz para conjuntos de datos enormes y no estructurados, pero las bases de datos SQL suelen ser mejores para consultas complejas y estructuradas. En muchos casos, una base de datos SQL bien ajustada supera a NoSQL si tu aplicación depende de relaciones profundas entre los datos.
Verdadero: No tienes que elegir. Los patrones de arquitectura modernos te permiten escalar tu sistema en muchas máquinas y, al mismo tiempo, mantener reglas estrictas para la seguridad de los datos, conocidas como cumplimiento de ACID, en todo el clúster.
Cuando decidas cómo quieres escalar tu base de datos, la elección suele depender de tu presupuesto, la cantidad de datos que tienes y el tiempo de actividad que necesitas. El consejo típico es el siguiente:
Google Cloud ofrece una variedad de herramientas de bases de datos que se adaptan a tu estrategia de escalamiento. Ya sea que necesites la simplicidad del escalamiento vertical o la potencia de alta capacidad del escalamiento horizontal, estos productos pueden ayudarte.


Comienza a desarrollar en Google Cloud con el crédito gratis de $300 y los más de 20 productos del nivel Siempre gratuito.