从App Engine连接到Cloud SQL比从localhost

时间:2016-12-14 09:06:49

标签: php mysql google-app-engine google-cloud-sql

因此,我一直在尝试从Google App Engine连接到Google Cloud SQL。一切正常,但延迟非常高。一个简单的选择查询大约需要1.3秒。但是,当我从localhost连接时,它需要更短的时间。连接的不同之处如下:

在App Engine yaml

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

在App Engine 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);

在localhost中连接到Cloud SQL时,我使用:

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

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

1 个答案:

答案 0 :(得分:2)

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

基本问题涉及扩大2016年刚刚推出的日本(亚洲 - 东北1)业务。目前似乎没有一个理想的解决方法。我唯一的建议是尝试在asia-northeast1之外移动Cloud SQL实例。如果移动在您的情况下可行,您可以使用asia-east1(台湾)或更近的区域来减少延迟。