校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > php實現mysql連接池效果實現代碼

php實現mysql連接池效果實現代碼

熱門標簽:深圳外呼系統收費 南寧高頻外呼回撥系統哪家好 400電話申請方法收費 長沙crm外呼系統業務 專業電話機器人批發商 江蘇外呼電銷機器人報價 離石地圖標注 400電話辦理福州市 電話機器人危險嗎

循環從mysql連接池中獲取連接,不需要重復創建新的連接。

參考配置修改:可以參考下面的文章

防止訪問量過大,把連接數占滿了

?php

/**
 * @author xuleyan
 * @title mysql類
 */

class DbHelper{
  //連接池
  private $_pools = [];

  //連接池大小
  const POOLSIZE = 5;

  const USERNAME = "root";
  const PASSWORD = "root";
  const HOST = "127.0.0.1";
  const DB = "test";

  public function __construct()  
  {
    $db = self::DB;
    $username = self::USERNAME;
    $password = self::PASSWORD;
    $host = self::HOST;

    //持久化連接
    $presistent = array(PDO::ATTR_PERSISTENT => true);

    for ($i=0; $i  self::POOLSIZE; $i++) { 
      $connection = new PDO("mysql:dbname=$db;host=$host", $username, $password);
      // sleep(3);
      array_push($this->_pools, $connection);
    }
  }

  //從數據庫連接池中獲取一個數據庫鏈接資源
  public function getConnection()
  {
    echo 'get' . count($this->_pools) . "br>";
    if (count($this->_pools) > 0) {
      $one = array_pop($this->_pools);
      echo 'getAfter' . count($this->_pools) . "br>";
      return $one;
    } else {
      throw new ErrorException ( "mark>數據庫連接池中已無鏈接資源,請稍后重試!/mark>" );
    }
  }

  //將用完的數據庫鏈接資源放回到數據庫連接池
  public function release($conn)
  {
    echo 'release' . count($this->_pools) . "br>";
    if (count($this->_pools) >= self::POOLSIZE) {
      throw new ErrorException ( "mark>數據庫連接池已滿!/mark>" );
    } else {
      array_push($this->_pools, $conn);
      // $conn = null;
      echo 'releaseAfter' . count($this->_pools) . "br>";
    }
  }

  public function query($sql)
  {
    try {
      $conn = $this->getConnection();
      $res = $conn->query($sql);
      $this->release($conn);
      return $res;
    } catch (ErrorException $e) {
      print 'error:' . $e->getMessage();
      die;
    }
  }

  public function queryAll($sql)
  {
    try {
      $conn = $this->getConnection();
      $sth = $conn->prepare($sql);
      $sth->execute();
      $result = $sth->fetchAll();
      return $result;
    } catch (PDOException $e) {
      print 'error:' . $e->getMessage();
      die;
    }
  }
}

在另外的文件這樣調用

?php 

require_once 'db.php';
$sql = 'select * from user';

$dbhelper = new DbHelper;
for ($i=0; $i  10; $i++) { 
  $res = $dbhelper->query($sql);
  // var_dump($res) . PHP_EOL;
}

ThinkPHP連接MySQL的連接池使用方法

因為一個小bug,導致項目在某個晚上向mysql發送了大量的連接請求,同時mysql服務器的dns出現問題,導致反解超時。最后活活的把mysql服務器拖掛了。

最后bug修復了,并研究了一下增加 mysql連接池的辦法。

這兩天搜了一下,發現ThinkPHP文檔里沒有連接池的相關文檔。所以自己研究了下代碼。

首先: PHP常用的mysql擴展庫有三種 : mysql, mysqli, pdo_mysql.

* mysqli 是不支持連接池的。
* pdo_mysql 支持,但是,thinkPHP的pdo擴展不支持mysql,僅支持:'MSSQL','ORACLE','Ibase','OCI' . ( 見 Pdo.class.php 的第59行)

* mysql 支持,通過方法:mysql_pconnect . (具體參數可以看php官方文檔)

1 使ThinkPHP啟用 長連接的方式是:

class BaseMysql extends Model {
  protected $connection = array(
    'db_type' => 'mysql',
    'db_user' => '***',
    'db_pwd' => '*******',
    'db_host' => '*******',
    'db_port' => '3306',
    'db_name' => 'custom',
    'db_params' => array('persist' => true),
  );
}

如果你認為,配置這個就萬事大吉了,那就大錯特錯了。

2 mysql -> my.cnf修改配置:
[mysqld]

interactive_timeout =60 // 交互連接(mysql-client)的過期時間。
wait_timeout =30 // 長連接的過期時間時間。 這個一定要改??!默認是8個小時。 如果請求量大點,很快連接數就占滿了。
max_connections = 100 //最大連接數,可以認為是連接池的大小

3 php.ini 修改:
[MySql]
mysql.allow_persistent = On
mysql.max_persistent = 99 // 要小于mysql配置的最大連接數
mysql.max_links = 99

4 webserver如果是apache ,需要啟用keep-alive。 否則,一旦請求退出,長連接將無法再重用。
webserver 是nginx的情況:
pm = dynamic // 默認啟動一些子進程,用于處理http請求。
pm.max_children // 最大的子進程數。 這個配置要小于 mysql 的max_connections。

5 如果發現還是不能用,請檢查操作系統的keepalive 是否啟用。

綜述:

需要 keep-alive 和 數據庫長連接同時啟用,否則長連接回白白的占用mysql的連接數資源,而無法重用。
對于 nginx + php-fpm 的情況,其實是保持了 php-fpm 子進程與mysql的長連接。 前端的http請求被分配給哪個 php-fpm子進程,該子進程就重用自己與mysql 的長連接。

上述是一整天的研究結果,不完備的地方,請大家指出,在此先行謝過!

您可能感興趣的文章:
  • workerman寫mysql連接池的實例代碼
  • 詳解Spring Boot Mysql 版本驅動連接池方案選擇
  • Python 使用 PyMysql、DBUtils 創建連接池提升性能
  • Node.js使用MySQL連接池的方法實例
  • nodeJs實現基于連接池連接mysql的方法示例
  • Node.js實現mysql連接池使用事務自動回收連接的方法示例
  • Python MySQL數據庫連接池組件pymysqlpool詳解
  • Java使用MySQL實現連接池代碼實例

標簽:濱州 興安盟 南昌 太原 曲靖 株洲 白酒營銷 南京

巨人網絡通訊聲明:本文標題《php實現mysql連接池效果實現代碼》,本文關鍵詞  php,實現,mysql,連接,池,效果,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《php實現mysql連接池效果實現代碼》相關的同類信息!
  • 本頁收集關于php實現mysql連接池效果實現代碼的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    www.性欧美| 午夜久久福利影院| 国产丶欧美丶日本不卡视频| 久久久噜噜噜久久人人看| 《视频一区视频二区| 亚洲一二三四在线| 一区2区3区在线看| 成人黄色av电影| 亚洲精品成a人| 欧美午夜片在线观看| 中文字幕日韩精品一区| 一本大道久久a久久综合| 国产精品乱人伦中文| 精品一区二区三区免费毛片爱| 成人理论电影网| 精品91自产拍在线观看一区| 日日骚欧美日韩| 99久久久久久| 亚洲欧洲在线观看av| 成人性色生活片| 国产精品国产成人国产三级| 成人18视频日本| 亚洲成人在线免费| 国产一区二三区好的| 久久无码av三级| 日本不卡1234视频| 日韩一级免费观看| 国产三级精品视频| caoporen国产精品视频| 一区二区三区免费网站| 国产999精品久久久久久绿帽| 久久人人爽爽爽人久久久| 国产在线视频精品一区| 日韩一区二区三区av| 久久99精品国产91久久来源| 欧美国产精品v| 日韩一区二区精品在线观看| 国产老妇另类xxxxx| 99riav久久精品riav| 久久久久久久免费视频了| 国产激情一区二区三区四区| 欧美日韩国产高清一区二区 | 国产不卡视频在线观看| 欧美激情一区二区| 久久99久久99| 亚洲综合视频网| 色综合天天综合网国产成人综合天| 欧美人与z0zoxxxx视频| 久久精品国产亚洲a| 国产精品久久毛片av大全日韩| 91色乱码一区二区三区| 青青草97国产精品免费观看 | 国产乱码精品一区二区三区av | 久久se这里有精品| 精品污污网站免费看| 一区二区三区欧美亚洲| 91浏览器在线视频| 美女精品自拍一二三四| 国产精品无圣光一区二区| 8x福利精品第一导航| 成人欧美一区二区三区在线播放| 久久综合久久99| 中文字幕亚洲不卡| 高清国产午夜精品久久久久久| 亚洲最大成人网4388xx| 99在线精品一区二区三区| 亚洲综合色婷婷| 欧美日韩国产在线播放网站| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 日韩精品一区国产麻豆| 欧美性感一类影片在线播放| 欧美日韩中文字幕一区二区| av激情亚洲男人天堂| 日韩一区中文字幕| 一区二区视频在线| 欧美视频在线一区| 色综合久久久久久久久| 日韩激情一区二区| 欧美激情艳妇裸体舞| 亚洲欧洲精品一区二区精品久久久| 欧美二区在线观看| 午夜电影网一区| 亚洲人成在线播放网站岛国 | 国产精品成人网| 国产婷婷色一区二区三区四区| 久久久一区二区三区捆绑**| 欧美性极品少妇| 欧美亚洲动漫精品| 欧美精品在线观看播放| 91丝袜美女网| 午夜精彩视频在线观看不卡| 欧美精品一区二区三区很污很色的| 99久久亚洲一区二区三区青草| 国产精品一级在线| 国产v日产∨综合v精品视频| 欧洲一区在线电影| 麻豆91免费看| 久久青草欧美一区二区三区| 欧美色涩在线第一页| 在线观看视频91| 日韩视频一区二区三区在线播放 | 久久久99精品免费观看不卡| 国产欧美日韩另类一区| 一区二区三区免费观看| 亚洲男人的天堂网| 亚洲一区在线观看网站| 麻豆成人久久精品二区三区红| 91麻豆视频网站| 日韩情涩欧美日韩视频| 一本大道久久a久久综合| 欧美日韩视频在线观看一区二区三区 | 国产精品一二三区在线| 91欧美一区二区| 久久女同性恋中文字幕| 一区二区三区成人| 经典三级一区二区| 欧美夫妻性生活| 欧美在线视频你懂得| 色中色一区二区| va亚洲va日韩不卡在线观看| 精品一区二区久久| thepron国产精品| 国产欧美日韩综合精品一区二区| 亚洲一区二区三区中文字幕| 99久久婷婷国产综合精品| 欧美电影免费观看高清完整版在| 欧美人成免费网站| 亚洲精品第一国产综合野| 国产资源精品在线观看| 国产原创一区二区| 日韩女优制服丝袜电影| 欧美精品一区二区三区在线播放 | 亚洲三级免费电影| 成人app软件下载大全免费| 成人一道本在线| 日韩欧美国产成人一区二区| 久久精品99久久久| 制服视频三区第一页精品| 一片黄亚洲嫩模| 精品亚洲成a人在线观看| 日本vs亚洲vs韩国一区三区二区| 亚洲电影在线播放| 日本一道高清亚洲日美韩| 色综合一区二区三区| 国产精品情趣视频| 91丨porny丨蝌蚪视频| 在线免费观看一区| 91精品欧美一区二区三区综合在| 一区二区三区在线影院| 91视频com| 亚洲欧洲在线观看av| 欧美在线观看视频在线| 亚洲欧美成人一区二区三区| 欧美日韩国产美女| 男人的天堂久久精品| 亚洲小少妇裸体bbw| 欧美视频在线播放| 亚洲国产成人av网| 7777精品伊人久久久大香线蕉的 | 日韩一区二区三区免费看| 亚洲乱码中文字幕综合| 成人动漫在线一区| 亚洲一区二区三区三| 久久99国内精品| 91网站视频在线观看| 国产精品美日韩| 免费看黄色91| 日韩免费性生活视频播放| 午夜精品久久久久久| 欧美www视频| 亚洲日本欧美天堂| 欧美无砖砖区免费| 99视频一区二区| 91久久香蕉国产日韩欧美9色| 欧美在线一二三四区| 精品国产乱码久久久久久夜甘婷婷| 亚洲aⅴ怡春院| 国产亚洲精品7777| 亚洲香肠在线观看| 免费成人美女在线观看| 欧美日韩一区二区三区高清 | 麻豆国产欧美日韩综合精品二区| 一区二区中文视频| 国产一区二区看久久| 国产精品欧美极品| 欧美日韩视频一区二区| 国内不卡的二区三区中文字幕 | 成人午夜av影视| 亚洲国产视频a| 久久这里只精品最新地址| 欧美久久久久久久久中文字幕| 激情五月婷婷综合网| 国产精品国产三级国产专播品爱网 | 日韩高清在线不卡| 欧美一区日本一区韩国一区| 亚洲理论在线观看| 久久午夜国产精品| 久久综合给合久久狠狠狠97色69| 91国偷自产一区二区使用方法| 成人高清av在线|