背景
公司报警邮件一到周末就出现too many connections
1.分析每次报警的时间节点,看是不是被刷了
2.是不是有慢查询语句
3.代码是不是每次都要实例化一下数据库的类
如果能摸到数据库的话 设置合适的数据库连接数,自动关闭没有使用的连接
show variables like ‘max_connections’;
set GLOBAL max_connections=1000;
show global variables like ‘wait_timeout’;
set global wait_timeout=300;
class Factory
{
//object 数组集合
private static $instanceArray = array();
//构造空
public function __construct(){}
/**
* 对外接口
* @param string $database
* @return object
*/
public static function getInstance($database = '')
{
if(!isset(self::$instanceArray[$database]))
{
switch ($database)
{
case "MDB_VIP_CRM":
self::$instanceArray[$database] = new Database(MDB_HOST_CRM, MDB_PORT_CRM, MDB_USER_CRM, MDB_PASSWORD_CRM, MDB_DATABASE_CRM);
break;