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的连接也会相应结束。

  • 相关阅读:
    线段树(区间合并) LA 3989 "Ray, Pass me the dishes!"
    BIT LA 4329 Ping pong
    并查集(路径更新) LA 3027 Corporative Network
    log4j.properties配置详解与实例-全部测试通过
    ActiveMQ入门实例
    activemq安全设置 设置admin的用户名和密码
    Freemarker入门小案例(生成静态网页的其中一种方式)
    maven项目在myeclipse中不出现Maven Dependencies 和maven标识的解决方法
    Mysql,SqlServer,Oracle主键自动增长的设置
    常用SQL语句
  • 原文地址:https://www.cnblogs.com/buexplain/p/4849231.html
Copyright © 2011-2022 走看看