Php 从App Engine连接到云SQL比从localhost连接慢

Php 从App Engine连接到云SQL比从localhost连接慢,php,mysql,google-app-engine,google-cloud-sql,Php,Mysql,Google App Engine,Google Cloud Sql,所以我一直在尝试从我的谷歌应用程序引擎连接到谷歌云SQL。一切正常,但延迟非常高。一个简单的select查询大约需要1.3秒。但是,当我从localhost连接时,所需的时间要短得多。连接的区别如下: 应用内引擎yaml MYSQL_DSN: /cloudsql/instanceName MYSQL_USER: user MYSQL_PASSWORD: password MYSQL_DATABASE: dbname 应用内引擎php $servername=getenv('MYSQL_DSN'

所以我一直在尝试从我的谷歌应用程序引擎连接到谷歌云SQL。一切正常,但延迟非常高。一个简单的select查询大约需要1.3秒。但是,当我从localhost连接时,所需的时间要短得多。连接的区别如下:

应用内引擎yaml

MYSQL_DSN: /cloudsql/instanceName
MYSQL_USER: user
MYSQL_PASSWORD: password
MYSQL_DATABASE: dbname
应用内引擎php

$servername=getenv('MYSQL_DSN');
$username=getenv('MYSQL_USER');
$password=getenv('MYSQL_password');
$dbname=getenv('MYSQL_数据库');
$connection=newmysqli(null、$username、$password、$dbname、null、$servername);
在localhost中连接到云SQL时,我使用:

$servername=“ip.address”;
$username=getenv('MYSQL_USER');
$password=getenv('MYSQL_password');
$dbname=getenv('MYSQL_数据库');
$connection=newmysqli($servername、$username、$password、$dbname);

当从localhost连接时,我已经在我的云SQL仪表板中授权了我的计算机的ip地址,所以直接通过ip地址连接没有问题。我现在的问题是,当我从localhost运行php文件以连接到cloudsql时,延迟比从appengine连接时要低。你知道我为什么以及如何解决这个问题吗

这是一个影响亚洲东北1地区的云SQL实例的已知问题。它在云SQL公共问题跟踪器下的上进行跟踪。请在问题上加星号以支持它,并获得适当的关注


根本问题与扩大2016年刚刚启动的日本(亚洲东北1)业务有关。目前似乎没有一个理想的解决办法。我唯一的建议是尝试将云SQL实例移动到asia-northeast1之外。如果在您的情况下,可以使用asia-east1(台湾)或更靠近的地区来减少延迟。

您如何测量延迟?@danCornilescu app engine dashboard显示延迟,所以有趣的是,当我将我的云SQL的允许网络设置为0.0.0.0/0,并通过云SQL ip地址直接连接时,速度要快得多。这意味着应用程序引擎连接到云SQL的安全检查正在减慢连接速度。:/你知道如何解决这个问题吗?这是第一代还是第二代云SQL实例?应用程序和/或SQL实例位于哪个区域?延迟是持续的还是间歇性的?实际上,您是如何测量SQL实例的延迟的?App Engine仪表板可以提供应用程序的延迟,但不是专门针对云SQL实例。您可以在应用程序中添加日志,也可以使用来查看应用程序和SQL实例之间通信的延迟。这是asia-northeast1的第二代。appengine的延迟大约为1300ms,我专门测量了$connection=new mysqli()部分的延迟时间最长。当使用插座连接时,这就像1000毫秒。这似乎与实例的位置有关。一些谷歌云技术支持人员正在appenginegroups上为我关注这个问题!我也面临着同样的问题,根据你的建议,我刚刚转到了asia-east1。然而,不幸的是,延迟仍然非常慢。在google解决这个问题之前,我可能需要考虑使用AWS RDS。我假设使用非亚洲位置是不可行的?您也可以将您的应用程序部署到灵活的环境中,并在同一网络中的计算引擎实例上部署MySQL。这应该允许使用内部IP进行通信。我不完全确定这是否能有效地将延迟降低到很大程度,因为我自己还没有测试过。