从 App Engine 连接到云 SQL 比从本地主机连接慢

Connecting to Cloud SQL from App Engine is slower than from localhost

所以我一直在尝试从我的 Google App Engine 连接到 Google Cloud SQL。一切正常,但延迟非常高。一个简单的 select 查询大约需要 1.3 秒。但是,当我从本地主机连接时,它需要的时间要短得多。连接的区别如下:

在 App Engine yaml 中

MYSQL_DSN: /cloudsql/instanceName
MYSQL_USER: user
MYSQL_PASSWORD: password
MYSQL_DATABASE: dbname

在 App 引擎中 php

$servername = getenv('MYSQL_DSN');
$username = getenv('MYSQL_USER');
$password = getenv('MYSQL_PASSWORD');
$dbname = getenv('MYSQL_DATABASE');
$connection = new mysqli(null, $username, $password, $dbname, null, $servername);

在本地主机中连接到 Cloud SQL 时,我使用:

$servername = "ip.address";
$username = getenv('MYSQL_USER');
$password = getenv('MYSQL_PASSWORD');
$dbname = getenv('MYSQL_DATABASE');
$connection = new mysqli($servername, $username, $password, $dbname);

从本地主机连接时,我已经在我的云 SQL 仪表板中授权了我的计算机的 ip 地址,因此直接通过 ip 地址连接是没有问题的。我现在的问题是,当我从本地主机 运行 我的 php 文件连接到云 SQL 时,延迟低于从 App Engine 连接时的延迟。知道为什么以及如何解决这个问题吗?

这是影响 asia-northeast1 区域中 Cloud SQL 个实例的已知问题。它在 Cloud SQL public 问题跟踪器 下的 Issue 197 上进行了跟踪。请给问题加注星标以支持它得到适当的关注。

根本问题与扩大 2016 年刚刚启动的日本 (asia-northeast1) 操作有关。目前似乎没有理想的解决方法。我唯一的建议是尝试将 Cloud SQL 实例移到 asia-northeast1 之外。如果您的情况可行,您可以使用 asia-east1(台湾)或更近的区域来减少延迟。