Auf dieser Seite wird beschrieben, was Managed Connection Pooling ist und wie Sie damit die Verwaltung von Datenbankverbindungen für Ihre Cloud SQL-Instanzen mithilfe von Pooling optimieren können.
Mit Managed Connection Pooling können Sie Ihre Arbeitslasten skalieren, indem Sie die Ressourcennutzung und die Verbindungs-Latenz für Ihre Cloud SQL-Instanzen mithilfe von Pooling optimieren.
Beim verwalteten Verbindungspooling werden Serververbindungen nach Möglichkeit dynamisch eingehenden Anfragen zugewiesen. Dies führt zu einer erheblichen Leistungssteigerung, insbesondere bei skalierten Verbindungen, da plötzliche Verbindungsspitzen abgefangen und vorhandene Datenbankverbindungen wiederverwendet werden. Anstatt eine Verbindung zu einer bestimmten Datenbank herzustellen, wird bei Managed Connection Pooling eine Verbindung zu einem Cluster von Poolern hergestellt, was zu kürzeren Verbindungszeiten und einer besseren Skalierbarkeit für Ihre Arbeitslasten führt. Die Anzahl der verwendeten Pooler richtet sich nach der Anzahl der vCPU-Kerne Ihrer Instanz.
Sie können Managed Connection Pooling für alle transaktionalen Arbeitslasten verwenden. Die Vorteile in Bezug auf Durchsatz und Latenz sind jedoch am größten bei Anwendungen mit kurzlebigen Verbindungen oder Anwendungen, die zu einem Anstieg der Verbindungen führen.
Bei Verbindungen mit langer Lebensdauer kann die Verbindungsleistung mit Managed Connection Pooling etwas geringer sein als bei einer direkten Verbindung. In diesem Fall bietet Managed Connection Pooling eine Verbindungsskalierung, wenn die Anzahl der Verbindungen sehr hoch ist. Bei Anwendungen, die in der Regel langlebige Verbindungen herstellen, können Sie stattdessen direkte Verbindungen zu Ihrer Instanz verwenden.
Damit Sie Managed Connection Pooling verwenden können, muss Ihre Instanz die folgenden Anforderungen erfüllen:
Ihre Instanz muss eine Cloud SQL Enterprise Plus-Instanz sein.
Sie müssen über eine direkte Verbindung oder nur über den Cloud SQL Auth-Proxy mit Ihrer Instanz verbunden sein.
Sie müssen mit einem gültigen Nutzernamen und Passwort mit Ihrer Instanz verbunden sein. IAM- und IAM-Gruppennutzer werden bei der Verwendung von Managed Connection Pooling nicht unterstützt.
Für das verwaltete Verbindungs-Pooling ist eine Mindestwartungsversionsnummer von POSTGRES_$version.R20250302.00_04 erforderlich. Weitere Informationen finden Sie unter Wartung selbst durchführen.
Von Managed Connection Pooling für Cloud SQL-Instanzen verwendete Ports
Wenn Sie Managed Connection Pooling aktivieren, ändern sich die Ports, die von Cloud SQL-Instanzen zum Bereitstellen von Datenbanktraffic verwendet werden. Die von Managed Connection Pooling verwendeten Ports sind:
TCP-Port 6432: Wird für direkte Verbindungen durch den Pooler für verwaltetes Verbindungs-Pooling verwendet. Wenn Sie über diesen Port eine Verbindung herstellen möchten, geben Sie psql -p 6432 an, wenn Sie direkt über den psql-Client eine Verbindung herstellen.
TCP-Port 3307: Wird nur für Cloud SQL Auth-Proxyverbindungen durch einen Managed Connection Pooling-Pooler verwendet. Wenn Sie den Cloud SQL Auth-Proxy verwenden, um eine Verbindung zum Pooler für Managed Connection Pooling herzustellen, wird diese Portnummer mit dem Cloud SQL Auth-Proxy-Client konfiguriert und kann nicht geändert werden.
Erweiterte Konfigurationsoptionen
Das verwaltete Verbindungspooling bietet die folgenden Pooling-Optionen, die Sie mit dem Parameter pool_mode festlegen können:
transaction (Standard): Verbindungen werden auf Transaktionsebene gepoolt.
max_pool_size: die maximale Größe des Verbindungspools. Der Standardwert ist 50 Verbindungen.
min_pool_size: Die Schwellengröße des Verbindungspools. Wenn die Anzahl der Serververbindungen kleiner als min_pool_size ist, fügen Sie dem Pool weitere Serververbindungen hinzu. Der Standardwert ist 0 Verbindungen.
max_client_connections: Die maximale Anzahl an Verbindungen, die für Ihre Instanz zulässig sind. Der Standardwert ist 5.000 Verbindungen.
client_connection_idle_timeout: Die Zeit, die eine Clientverbindung inaktiv bleibt, bevor eine Zeitüberschreitung auftritt. Dieser Wert kann zwischen 0 und 2.147.483 Sekunden liegen. Der Standardwert ist 0 Sekunden.
server_connection_idle_timeout: die Zeit, die eine Serververbindung inaktiv bleibt, bevor eine Zeitüberschreitung auftritt. Dieser Wert kann zwischen 0 und 2.147.483 Sekunden liegen. Der Standardwert ist 600 Sekunden.
query_wait_timeout: Die Zeit, die eine Abfrage wartet, bis sie das Zeitlimit überschreitet.
Dieser Wert kann zwischen 0 und 2.147.483 Sekunden liegen. Der Standardwert ist 120 Sekunden.
max_prepared_statements: Die maximale Anzahl von benannten vorbereiteten Anweisungsbefehlen auf Protokollebene, die im Transaktionspooling-Modus unterstützt werden. Der Standardwert ist 0 Anweisungen.
ignore_startup_parameters: Die Parameter, die ignoriert werden sollen und die in den Startpaketen von Managed Connection Pooling standardmäßig nicht erfasst werden.
server_lifetime: Die maximale Zeit, die eine Serververbindung ungenutzt bleibt, bevor sie vom Managed Connection Pooling geschlossen wird. Der Standardwert beträgt 3.600 Sekunden.
Beschränkungen
Wenn Sie Managed Connection Pooling mit Ihren Cloud SQL Enterprise Plus-Instanzen verwenden, sollten Sie die folgenden Einschränkungen beachten:
Wenn Sie das verwaltete Verbindungspooling für eine vorhandene Instanz aktivieren, wird die Datenbank neu gestartet.
Wenn Sie die Cloud SQL API verwenden, um Managed Connection Pooling zu aktivieren, zu deaktivieren oder zu konfigurieren, darf die instance.update API keine anderen Aktualisierungen der Instanzkonfiguration enthalten.
Managed Connection Pooling kann nur mit Cloud SQL Auth-Proxy-Version 2.15.2 und höher verwendet werden.
Wenn Sie den Cloud SQL-Go-Connector verwenden, empfehlen wir mindestens die Go-Version 1.24. Wenn Sie Go-Version 1.23 oder früher verwenden, kann es bei der Verwendung von Managed Connection Pooling zu Leistungseinschränkungen kommen.
Wenn Sie Managed Connection Pooling im transaction-Pooling-Modus verwenden, werden die folgenden SQL-Funktionen nicht unterstützt:
SET/RESET
LISTEN
WITH HOLD CURSOR
PREPARE/DEALLOCATE
PRESERVE/DELETE ROW Temporäre Tabellen
LOAD
Sperren auf Sitzungsebene
Wenn Sie die asyncpg-Datenbankschnittstellenbibliothek für den Pooler für Managed Connection Pooling auf Port 3307 und 6432 verwenden, müssen Sie max_prepared_statements auf einen Wert größer als 0 aktualisieren, um die Unterstützung für vorbereitete Anweisungen im Pooler für Managed Connection Pooling zu aktivieren.
Wenn Sie Cloud SQL for PostgreSQL Version 17 verwenden, wird die Option sslnegotiation=direct nicht unterstützt.
Das Tracking von Client-IPs wird bei Managed Connection Pooling nicht unterstützt. Wenn Sie in Suchanfragen-Insights die Option Client-IP-Adressen speichern aktivieren, werden Client-IP-Adressen als local anstelle der IP-Adresse selbst angezeigt.
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-09-04 (UTC)."],[],[],null,["# Managed Connection Pooling overview\n\n\u003cbr /\u003e\n\n[MySQL](/sql/docs/mysql/managed-connection-pooling \"View this page for the MySQL database engine\") \\| PostgreSQL \\| SQL Server\n\n\u003cbr /\u003e\n\n|\n| **Preview\n| --- [Managed Connection Pooling](/sql/docs/postgres/managed-connection-pooling)**\n|\n|\n| This feature is subject to the \"Pre-GA Offerings Terms\" in the General Service Terms section\n| of the [Service Specific Terms](/terms/service-terms#1).\n|\n| You can process personal data for this feature as outlined in the\n| [Cloud Data Processing\n| Addendum](/terms/data-processing-addendum), subject to the obligations and restrictions described in the agreement under\n| which you access Google Cloud.\n|\n| Pre-GA features are available \"as is\" and might have limited support.\n|\n| For more information, see the\n| [launch stage descriptions](/products#product-launch-stages).\n\nThis page describes what Managed Connection Pooling is and how to use it with your\nCloud SQL instances.\n\nManaged Connection Pooling lets you scale your workloads by optimizing resource utilization\nand connection latency for your Cloud SQL for PostgreSQL instances using pooling.\n\nManaged Connection Pooling dynamically assigns server connections to\nincoming requests when possible. This delivers significant performance\nimprovements, especially for scaled connections, by absorbing sudden\nconnection spikes and reusing existing database connections. Instead of\nconnecting to a particular database, Managed Connection Pooling connects to a\ncluster of poolers, which provide shorter connection times and scalability\nfor your workloads. The number of poolers used is based on the number of vCPU\ncores of your instance.\n\n\nWhile you can use Managed Connection Pooling for any transactional workloads,\nManaged Connection Pooling provides the most throughput and latency benefit with applications\nthat contain short-lived connections, or applications that result in a\nconnection surge.\n\nFor long-lived connections, the connection performance using\nManaged Connection Pooling can be slightly lower than when using a direct\nconnection. In this case, Managed Connection Pooling provides connection\nscaling when the number of connections is very high. However, for\napplications that typically establish long-lived connections, you might use\ndirect connections to your instance instead.\n\nFor more information on how to enable Managed Connection Pooling, see\n[Configure Managed Connection Pooling](/sql/docs/postgres/configure-mcp).\n\nRequirements\n------------\n\nTo use Managed Connection Pooling, your instance must meet the following requirements:\n\n- Your instance must be a Cloud SQL Enterprise Plus edition instance.\n- You must be connected to your instance using a direct connection, or the Cloud SQL Auth Proxy only.\n- You must be connected to your instance using a valid username and password. IAM and IAM group users aren't supported when using Managed Connection Pooling.\n- Your instance must either be set up for [private service access](/sql/docs/postgres/private-ip#set_up_private_services_access_for_your_network), use public IP, or be a new instance with [Private Service Connect](/sql/docs/postgres/about-private-service-connect) enabled.\n- Your instance must use the new [Cloud SQL network architecture](/sql/docs/postgres/upgrade-cloud-sql-instance-new-network-architecture).\n- Managed Connection Pooling requires a minimum maintenance version number of `POSTGRES_$version.R20250302.00_04`. For more information, see [Perform self-service maintenance](/sql/docs/postgres/self-service-maintenance).\n\nPorts used by Managed Connection Pooling for Cloud SQL instances\n----------------------------------------------------------------\n\nWhen you enable Managed Connection Pooling, the ports used by Cloud SQL instances to serve database traffic change. The ports used by Managed Connection Pooling are as follows:\n\n- **TCP port 5432** : used for direct connections by the Postgres database server. This is the default port number used when [directly connecting using psql client](/sql/docs/postgres/connect-admin-ip#connect).\n- **TCP port 6432** : used for direct connections by the Managed Connection Pooling pooler. To connect using this port, specify `psql -p 6432` when [directly connecting using psql client](/sql/docs/postgres/connect-admin-ip#connect).\n- **TCP port 3307**: used for the Cloud SQL Auth Proxy only connections by a Managed Connection Pooling pooler. When you use Cloud SQL Auth Proxy to connect to Managed Connection Pooling pooler, this port number is configured with the Cloud SQL Auth Proxy client and can't be changed.\n\nAvailable configuration options\n-------------------------------\n\nManaged Connection Pooling offers the following pooling options that you can set using the `pool_mode` parameter:\n\n\u003cbr /\u003e\n\n- `transaction` (default): pools connections at a transaction level.\n- `session`: pools connections at a session level.\n\n| **Note:** The maximum number of server connections used by the pooler in Managed Connection Pooling is limited by the `max_connections` database configuration. Cloud SQL recommends adjusting this value based on your instance's workload requirements and the database instance size. For more information about the `max_connections` flag, see [Maximum concurrent connections](/sql/docs/quotas#maximum_concurrent_connections). To modify the `max_connections` database configuration flag for your instance, see [Configure database flags](/sql/docs/postgres/flags#config).\n\nYou can also\n[customize Managed Connection Pooling](/sql/docs/postgres/configure-mcp#modify-mcp)\nby using the following configuration parameters:\n\n- `max_pool_size`: the maximum size of the connection pool. The default value is 50 connections.\n- `min_pool_size`: the threshold size of the connection pool. If the number of server connections is less than `min_pool_size`, then add more server connections to the pool. The default value is 0 connections.\n- `max_client_connections`: the maximum number of connections allowed for your instance. The default value is 5,000 connections.\n- `client_connection_idle_timeout`: the time that a client-connection remains idle before it times out. This value can range from 0 to 2,147,483 seconds, and the default value is 0 seconds.\n- `server_connection_idle_timeout`: the time that a server connection remains idle before it times out. This value can range from 0 to 2,147,483 seconds, and the default value is 600 seconds.\n- `query_wait_timeout`: the time that a query waits until it times out. This value can range from 0 to 2,147,483 seconds, and the default value is 120 seconds.\n- `max_prepared_statements`: the maximum number of protocol-level named prepared statements commands supported in transaction pooling mode. The default value is 0 statements.\n- `ignore_startup_parameters`: the parameters you want ignored, that aren't tracked in Managed Connection Pooling's startup packets by default.\n- `server_lifetime`: the maximum time a server connection is unused before Managed Connection Pooling closes it. The default value is 3600 seconds.\n\nLimitations\n-----------\n\nConsider the following limitations when using Managed Connection Pooling with\nyour Cloud SQL Enterprise Plus edition instances:\n\n- Enabling Managed Connection Pooling on an existing instance results in a database restart.\n- When you use the Cloud SQL API to enable, disable, or configure Managed Connection Pooling, the `instance.update` API can't contain any other instance configuration updates.\n- Managed Connection Pooling can only be used with Cloud SQL Auth Proxy version 2.15.2 and later.\n- If you're using the Cloud SQL Go Language Connector, then we recommend a minimum Go version of `1.24`. If you use Go version 1.23 or earlier, then you might experience limitations on performance when using Managed Connection Pooling.\n- If you're using Managed Connection Pooling in `transaction` pooling mode, then\n the following SQL features aren't supported:\n\n - `SET/RESET`\n - `LISTEN`\n - `WITH HOLD CURSOR`\n - `PREPARE/DEALLOCATE`\n - `PRESERVE/DELETE ROW` temp tables\n - `LOAD`\n - Session-level advisory locks\n- If you're using the\n [asyncpg database interface library](https://magicstack.github.io/asyncpg/current/)\n for Managed Connection Pooling pooler on port 3307 and 6432, then you must update the\n `max_prepared_statements` to a value larger than 0 to enable support for\n prepared statements in Managed Connection Pooling pooler.\n\n- If you're using Cloud SQL for PostgreSQL version 17, then the\n `sslnegotiation=direct` option isn't supported.\n\n- Client IP tracking isn't supported with Managed Connection Pooling. If you enable\n *store client IP addresses* in [query insights](/sql/docs/postgres/using-query-insights),\n then client IP addresses are displayed as `local` instead of the IP address\n itself.\n\nWhat's next\n-----------\n\n- [Create an instance](/sql/docs/postgres/create-instance)\n- [Configure Managed Connection Pooling](/sql/docs/postgres/configure-mcp)"]]