我正在为一个移动应用程序构建一个非常传统的PHP/MySQL后端,过去我一直因为没有正确关闭MySQL连接而受到严重打击…
如果我使用mysqli_connect()连接我的应用程序引擎为基础的PHP到谷歌云SQL,我如何确保我保持同时连接到我的云SQL实例的数量在最低限度,如果用户会话可能相当长?
我读到PHP 5.3+支持与mysqli_connect的持久连接,只要你在主机名前加上"p:",但是云SQL在从应用引擎连接时根本不接受任何主机名…
您可以在mysql_connect
的第一个参数前添加p:
。
但是你必须检查打开/关闭连接的时间是否比"data"查询时间重要,如google gloud SQL FAQ:
所述如何最好地管理数据库连接取决于您的用例。例如,如果创建新数据库连接的时间大于检查和重用现有连接的时间,那么我们建议您使用连接池。相反,如果创建新连接的时间与测试现有连接是否有效并重用它的时间大致相同,那么我们建议创建一个新连接来为每个HTTP请求提供服务,并在请求期间重用它。特别是,当您从Google App Engine连接到Google Cloud SQL时,后一种情况可能适用。
为了保持SQL连接的数量低,你将不得不广泛使用缓存(与memcached为例),并避免做连接时,你不需要(即不创建一个连接在你的页面标题,如果你不需要它)。