Mysql Connection正在迅速增加,包括查询

时间:2017-02-24 07:40:16

标签: php mysql mysqli codeigniter-2 codeigniter-3

我在Codeigniter上构建了Rest api(PHP 5.5 - MYSQLi 5.6)。     针对单个Api呼叫触发了8个查询。调用其他api时连接会增加,连接也不会减少。

对于4个用户,查询和连接增加到25-32。我想知道如何减少连接和查询。

  • 我有这种情况 - MY_MODEL扩展了CI_MODEL,USER_DB扩展了MY_MODEL和USER_MODEL,扩展了User_DB。我怀疑构造函数链接有任何问题。请建议

    1. 连接&查询正在迅速增加。
    2. 在Config文件中使用了Persistent连接没有用。
    3. 如何减少mysqli连接&查询被解雇。
    4. 每次api通话后我是否必须强行关闭连接,还是应该将其留给Codeigniter。
    5. enter image description here

1 个答案:

答案 0 :(得分:-1)

如果你在裸apache上运行你的php,那你做错了。

鉴于许多小型查询的典型Web工作负载,您的数据库将处于最佳状态,每个核心有1-2个线程。如果你让它增长到10或更多,首先它将消耗更多的RAM,然后你需要担心锁定更多。

出于类似的原因,您的Web服务器将会非常快,每个核心有1-3个PHP进程,而不是几百个。

设置的简单方法是使用lighttpd或nginx等服务器以fastcgi模式运行php。这些服务器将处理长慢的HTTP连接,收集请求数据,然后快速运行PHP代码,缓冲响应,并释放php解释器和数据库连接,同时通过客户端的HTTP连接涓流响应。

然后,您可以将lighttpd配置中fastcgi进程数量的限制设置为较小的值,例如每个核心3个。这也限制了您的持久数据库连接。

当然,您应该优化SQL查询!但既然你没有提供任何有关这方面的信息......