我正在尝试通过云SQL连接将PHP55应用程序部署到GAE(标准实例)。
我正在使用unix_socket DSN连接,如文档所示,但是到云sql实例的连接时间非常慢(有时可能需要200毫秒),并且对应用程序响应时间有严重影响(应回答在50毫秒内,但实际上平均响应时间为150毫秒):
"timer (seconds)": {
"begin": 0,
"app": 0.043889999389648,
"pdoinit": 0.000070095062255859,
"pdook": 0.20270991325378,
"pdoutf8": 0.037790060043335,
"controller": 0.062999963760376,
"preparequery": 0.015130043029785,
"executequery": 0.0024099349975586,
"return": 0.0051000118255615,
"returnok": 0.00011014938354492
}
以下是来自f1-micro计算引擎实例的相同性能检查:
"timer (seconds)": {
"begin": 0,
"app": 0.0002980232238769531,
"pdoinit": 0.000014066696166992188,
"pdook": 0.0019490718841552734,
"pdoutf8": 0.0009219646453857422,
"controller": 0.0030989646911621094,
"preparequery": 0.005979061126708984,
"executequery": 0.0009448528289794922,
"return": 0.0031609535217285156,
"returnok": 0.000025033950805664062
},
我的应用程序和Cloud SQL实例位于相同的位置ID。所以这里没问题。
让另一个应用程序从同一区域的计算引擎访问云SQL,没有任何问题。
也许还有我在文档中没有看到的另一种连接方法?我看到很多人遇到这样的问题,没有解决方案。也许应用引擎不是正确的解决方案?
非常感谢您的帮助!
答案 0 :(得分:0)
正式的CloudSQL文档基本上指出,除了AppEngine文档(即套接字)中提到的方法外,没有其他方法可以通过AppEngine标准连接到CloudSQL:
从App Engine连接到Cloud SQL的常规信息
从App Engine标准或Flex环境连接到Cloud SQL时,只能使用以下链接的说明进行连接。您不能使用IP地址(公共或私有)从App Engine应用程序连接到Cloud SQL。从App Engine应用程序到Cloud SQL的连接是安全和加密的;您不需要配置TLS / SSL。
如果这是应用程序的选项,则可以尝试使用Compute Engine虚拟机或kubernetes Engine,以便能够使用常规tcp连接。甚至可以使用私有IP来提高网络性能。