Optimiza el rendimiento de la base de datos

Last reviewed 2023-08-06 UTC

En este documento de Framework de la arquitectura de Google Cloud, se proporcionan recomendaciones para ayudarte a optimizar el rendimiento de las bases de datos en Google Cloud.

Cloud SQL

Las siguientes recomendaciones te ayudarán a optimizar el rendimiento de las instancias de Cloud SQL que ejecutan bases de datos de SQL Server, MySQL y PostgreSQL.

Para obtener más información, consulta la siguiente documentación:

Bigtable

En esta sección, se proporcionan recomendaciones para optimizar el rendimiento de tus instancias de Bigtable.

Planifica la capacidad según los requisitos de rendimiento

Puedes usar Bigtable en una amplia gama de aplicaciones, cada una con un objetivo de optimización diferente. Por ejemplo, para los trabajos de procesamiento de datos por lotes, la capacidad de procesamiento puede ser más importante que la latencia. Para un servicio en línea que entrega solicitudes de usuarios, es posible que debas priorizar una latencia más baja por sobre la capacidad de procesamiento. Cuando planifiques la capacidad de los clústeres de Bigtable, ten en cuenta las compensaciones entre la capacidad de procesamiento y la latencia. Si deseas obtener más información, consulta Planifica tu capacidad de Bigtable.

Sigue las prácticas recomendadas para el diseño de esquemas

Las tablas pueden escalar a miles de millones de filas y miles de columnas, lo que te permite almacenar petabytes de datos. Cuando diseñes el esquema para las tablas de Bigtable, ten en cuenta las prácticas recomendadas sobre el diseño del esquema.

Supervisa el rendimiento y realiza ajustes

Supervisa el uso de CPU y de disco de tus instancias, analiza el rendimiento de cada clúster y revisa las recomendaciones de tamaño que se muestran en los gráficos de supervisión.

Spanner

En esta sección, se proporcionan recomendaciones para ayudarte a optimizar el rendimiento de las instancias de Spanner.

Elige una clave primaria que evite un hotspot

Un hotspot es un servidor único que se ve obligado a controlar muchas solicitudes. Cuando elijas la clave primaria de tu base de datos, sigue las prácticas recomendadas de diseño del esquema para evitar un hotspot.

Sigue las prácticas recomendadas para la codificación SQL

El compilador de SQL en Spanner convierte cada instrucción de SQL declarativa que escribes en un plan de ejecución de consultas imperativo. Spanner usa el plan de ejecución para ejecutar la instrucción de SQL. Cuando crees instrucciones de SQL, sigue las prácticas recomendadas de SQL para asegurarte de que Spanner use planes de ejecución que generen un rendimiento óptimo.

Usa opciones de consulta para administrar el optimizador de consultas de SQL

Spanner usa un optimizador de consultas en SQL para transformar las instrucciones de SQL en planes de ejecución eficientes de consultas. El plan de ejecución de consultas que produce el optimizador puede cambiar un poco cuando el optimizador de consultas evoluciona o cuando se actualizan las estadísticas de la base de datos. Puedes minimizar el potencial de regresión de rendimiento cuando el optimizador de consultas o las estadísticas de la base de datos cambian mediante las opciones de consulta.

Visualiza y ajusta la estructura de los planes de ejecución de consultas

Para analizar los problemas de rendimiento de las consultas, puedes visualizar y ajustar la estructura de los planes de ejecución de consultas mediante el visualizador del plan de consultas.

Usa las API de operaciones para administrar operaciones de larga duración

Para ciertas llamadas de método, Spanner crea operaciones de larga duración, lo que puede tardar una cantidad de tiempo considerable en completarse. Por ejemplo, cuando restableces una base de datos, Spanner crea una operación de larga duración para realizar un seguimiento del progreso del restablecimiento. Para ayudarte a supervisar y administrar operaciones de larga duración, Spanner proporciona las APIs de operaciones. Para obtener más información, consulta Administra operaciones de larga duración.

Sigue las prácticas recomendadas para la carga masiva

Spanner admite varias opciones para cargar grandes cantidades de datos de forma masiva. El rendimiento de una operación de carga masiva depende de factores como la partición, la cantidad de solicitudes de escritura y el tamaño de cada solicitud. Para cargar grandes cantidades de datos de forma eficiente, sigue las prácticas recomendadas sobre la carga masiva.

Supervisa y controla el uso de CPU

El uso de CPU de la instancia de Spanner puede afectar las latencias de solicitud. Un servidor de backend sobrecargado puede causar mayores latencias de solicitudes. Spanner proporciona métricas de uso de CPU para ayudarte a investigar el uso alto de CPU. En el caso de aplicaciones sensibles al rendimiento, es posible que debas aumentar el uso de CPU mediante el aumento de la capacidad de procesamiento.

Analiza y resuelve problemas de latencia

Cuando un cliente realiza una llamada de procedimiento remoto a Spanner, las bibliotecas cliente preparan primero la solicitud a la API. Luego, la solicitud pasa por Google Front End y el frontend de la API de Cloud Spanner antes de que llegue a la base de datos de Spanner. Para analizar y resolver problemas de latencia, debes medir y analizar la latencia de cada segmento de la ruta que recorre la solicitud a la API. Para obtener más información, consulta la Guía de latencia de extremo a extremo de Spanner.

Inicia las aplicaciones después de que la base de datos alcanza el estado templado

A medida que crecen las bases de datos de Spanner, se divide el espacio de claves de los datos en divisiones. Cada división es un rango de filas que contiene un subconjunto de la tabla. Para balancear la carga total en la base de datos, Spanner mueve de forma dinámica las divisiones individuales y las asigna a diferentes servidores. Cuando las divisiones se distribuyen en varios servidores, se considera que la base de datos está en un estado caliente. Una base de datos cálida puede maximizar el paralelismo y entregar un rendimiento mejorado. Antes de iniciar las aplicaciones, te recomendamos precargar la base de datos con cargas de datos de prueba.

¿Qué sigue?

Revisa las prácticas recomendadas para optimizar el rendimiento de tus recursos de procesamiento, almacenamiento, herramientas de redes y estadísticas: