Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
googleappengine php-mysql连接优化_Php_Mysql_Google App Engine_Pooling - Fatal编程技术网

googleappengine php-mysql连接优化

googleappengine php-mysql连接优化,php,mysql,google-app-engine,pooling,Php,Mysql,Google App Engine,Pooling,我们正在尝试使用google app engine编写一个web后端。我们有几个不同的页面,但它们有很多共同点。到目前为止,我已经把每个用户每月的平均成本降到了9美分左右,但我觉得还是太贵了。我们的php代码现在遇到了两个瓶颈,即使用memcache和mysql数据库连接的会话 因此,对我们其中一个页面的请求可能如下所示: 获取会话数据:20ms(使用memcache) 打开mysql连接:20ms(使用mysqli) mysql中的调用存储过程(2-3毫秒) 总计:50毫秒 对于会话信息,

我们正在尝试使用google app engine编写一个web后端。我们有几个不同的页面,但它们有很多共同点。到目前为止,我已经把每个用户每月的平均成本降到了9美分左右,但我觉得还是太贵了。我们的php代码现在遇到了两个瓶颈,即使用memcache和mysql数据库连接的会话

因此,对我们其中一个页面的请求可能如下所示:

  • 获取会话数据:20ms(使用memcache)
  • 打开mysql连接:20ms(使用mysqli)
  • mysql中的调用存储过程(2-3毫秒)
  • 总计:50毫秒
对于会话信息,一个有趣的注意事项是,appengine仪表板上的跟踪页面显示memcache RPC只需要1ms,但当我用时间戳注销时,代码似乎需要20ms才能继续执行

在我看来,也许我们应该更改会话以使用数据库,因为这样我们只需打开一次连接,并且希望添加会话数据的查询与其他查询一样快,速度为2-3毫秒。因此,如果幸运的话,这可能会减少15毫秒,但这将是一个相当大的工作量

然后我还读到,您可以为mysql执行持久数据库连接或连接池,这可能会减少连接到数据库的其他20毫秒。然而,到目前为止,我还不知道如何做到这一点。appengine似乎不支持在mysqli_connect的主机名中使用“p:”的标准,因为如果不为第一个参数传入null,就会出错。当我尝试使用PDO时,每5个请求中就有500个错误,我还没有弄清楚,php网站上不推荐使用常规的mysql_pconnect,所以我想我不应该使用它


你有什么想法吗?这似乎是一个其他人以前必须解决的相对简单的问题,但尽管我进行了搜索,但在如何为google app engine设置连接池或使用持久连接方面,我找不到好的资源。

你不会打败memcache的性能。您需要记住,根据您的实例大小,应用程序会受到限制,因此呼叫站点的计时不是很准确。