zoukankan      html  css  js  c++  java
  • php关于mysql长连接问题

    1、当 函数 mysql_connect 的前三个参数(server username password)相同,并且第四个参数(new_link)不传递时候,重复调用 mysql_connect 是会返回相同的连接。

    php代码

    <?php
    $db = mysql_connect('localhost','root','root');
    var_dump($db);
    $db2 = mysql_connect('localhost','root','root');
    var_dump($db2);
    sleep(10);

    页面打印信息

    resource(3) of type (mysql link) resource(3) of type (mysql link) 

    mysql连接数

    mysql> show full processlist;
    +----+------+-----------------+------+---------+------+-------+-----------------------+
    | Id | User | Host            | db   | Command | Time | State | Info                  |
    +----+------+-----------------+------+---------+------+-------+-----------------------+
    | 32 | root | localhost:54408 | NULL | Query   |    0 | NULL  | show full processlist |
    | 44 | root | localhost:55278 | NULL | Sleep   |    3 |       | NULL                  |
    +----+------+-----------------+------+---------+------+-------+-----------------------+
    2 rows in set

    2、当函数 mysql_connect 传递了第四个参数(new_link)后,再重复调用它。

    php代码

    <?php
    $db = mysql_connect('localhost','root','root',1);
    var_dump($db);
    $db2 = mysql_connect('localhost','root','root',1);
    var_dump($db2);
    sleep(10);

    页面打印信息

    resource(3) of type (mysql link) resource(5) of type (mysql link) 

    mysql连接数

    mysql> show full processlist;
    +----+------+-----------------+------+---------+------+-------+-----------------------+
    | Id | User | Host            | db   | Command | Time | State | Info                  |
    +----+------+-----------------+------+---------+------+-------+-----------------------+
    | 32 | root | localhost:54408 | NULL | Query   |    0 | NULL  | show full processlist |
    | 45 | root | localhost:55320 | NULL | Sleep   |    4 |       | NULL                  |
    | 46 | root | localhost:55321 | NULL | Sleep   |    4 |       | NULL                  |
    +----+------+-----------------+------+---------+------+-------+-----------------------+

    3、mysql_pconnect 持久连接

    php代码

    <?php
    $db = mysql_pconnect('localhost','root','root');
    var_dump($db);
    $db2 = mysql_pconnect('localhost','root','root');
    var_dump($db2);

    页面打印信息

    resource(3) of type (mysql link persistent) resource(4) of type (mysql link persistent) 

    mysql连接数

    mysql> show full processlist;
    +----+------+-----------------+------+---------+------+-------+-----------------------+
    | Id | User | Host            | db   | Command | Time | State | Info                  |
    +----+------+-----------------+------+---------+------+-------+-----------------------+
    |  1 | root | localhost:55391 | NULL | Query   |    0 | NULL  | show full processlist |
    |  2 | root | localhost:55393 | NULL | Sleep   |    5 |       | NULL                  |
    +----+------+-----------------+------+---------+------+-------+-----------------------+

    4、mysql_pconnect 加上第四个参数(new_link)即可 建立多个 持久连接

    php代码

    <?php
    $db = mysql_pconnect('localhost','root','root',1);
    var_dump($db);
    $db2 = mysql_pconnect('localhost','root','root',1);
    var_dump($db2);

    页面打印信息

    resource(3) of type (mysql link persistent) resource(4) of type (mysql link persistent) 

    mysql连接数

    mysql> show full processlist;
    +----+------+-----------------+------+---------+------+-------+-----------------------+
    | Id | User | Host            | db   | Command | Time | State | Info                  |
    +----+------+-----------------+------+---------+------+-------+-----------------------+
    |  1 | root | localhost:55391 | NULL | Query   |    0 | NULL  | show full processlist |
    |  2 | root | localhost:55393 | NULL | Sleep   |  316 |       | NULL                  |
    |  3 | root | localhost:55418 | NULL | Sleep   |    4 |       | NULL                  |
    +----+------+-----------------+------+---------+------+-------+-----------------------+
    3 rows in set

    5、总结:

    函数 mysql_pconnetc 创建的 持久化连接 在php脚本结束后,mysql的连接并不会立即结束。什么时候结束,是由mysql自己管理。函数 mysql_colse 不能关闭 mysql_pconnetc 的连接。

    函数 mysql_connetc 创建的 连接 在php脚本结束后,mysql的连接也会相应结束。

  • 相关阅读:
    odoo11 外部数据导入方法2
    odoo 11 实现多个字段对应一个查询参数的查询
    ionic 访问odoo11之具体业务类api接口
    ionic访问odoo 11接口
    odoo 11导入外部数据过程记录
    程序发送邮件的思考
    Topshelf的Ioc实现
    查看MS Sqlserver文件大小语句
    TopShelf 自动配置Service测试
    odoo11 添加自定义模块报错问题
  • 原文地址:https://www.cnblogs.com/buexplain/p/4849231.html
Copyright © 2011-2022 走看看