PDO 長連線

MX007發表於2019-07-10

長連線是什麼含義?PDO支援長連線嗎?

  • 長連線是指新建立的連線能夠在多次請求之間複用,與之相對的是短連線,短連線在每次請求時建立連結,請求結束後都會釋放連結。
  • PDO預設是短連線,要想使用長連線,可以在建立時如下設定options:
        $pdo = new PDO($dsn, $username, $passwd, [PDO::ATTR_PERSISTENT => true]);
    • 長連線測試
      • 方法1:請求結束後通過mysql客戶端執行 show full processlist
      • 方法2:檢視mysql general_log
      • 方法3:檢視伺服器上mysql埠的連結;mac上面可以執行 lsof -i :3306 檢視
        PDO長連線

長連線 vs 短連線

  • 長連線能夠複用連線資源,減少響應時間,但是要考慮最大連結數的限制(php-fpm工作模式下連線數=worker程式書數)
  • 短連線響應時間慢,但資源會及時釋放

questions?

  • PDO可以設定最大連線數嗎?可以設定連結的最大空閒時間嗎?
  • PDO vs 連線池

相關文章