我正在为移动应用构建一个非常传统的PHP / MySQL后端,而且我在过去没有正确关闭MySQL连接时感到很难......
如果我使用mysqli_connect()将基于App Engine的PHP连接到Google Cloud SQL,如何确保我至少保持与Cloud SQL实例同时连接的数量会议可能会很长?
我已经读过PHP 5.3+支持与mysqli_connect的持久连接,只要你在主机名前加上" p:"但是,当从App Engine连接时,Cloud SQL根本没有任何主机名...
答案 0 :(得分:1)
您可以将p:
添加到mysql_connect
中第一个参数的任何内容。
但是你必须检查打开/关闭连接的时间与“数据”查询时间相比是否重要,如google gloud SQL FAQ中所述:
如何最好地管理数据库连接取决于您的使用案例。例如,如果创建新数据库连接的时间大于检查和重用现有连接,那么我们建议您使用连接池。相反,如果创建新连接的时间与测试现有连接是否处于活动状态并重新使用它的时间大致相同,那么我们建议您创建一个新连接来为每个HTTP请求提供服务,并在请求期间重复使用它。特别是,当您从Google App Engine连接到Google Cloud SQL时,后一种情况可能适用。
为了保持SQL连接的数量较少,你必须大量使用缓存(例如使用memcached)并避免在不需要时进行连接(即不要在标头中创建连接)如果你不需要你的页面。)