1. 程式人生 > >基於SWOOLE的MYSQL資料庫連線池,php mysql 連線池

基於SWOOLE的MYSQL資料庫連線池,php mysql 連線池

swoole_mysqlpool

使用Swoole的\Swoole\Coroutine\MySQL建立連線,通過靜態類和靜態成員屬性維護連線池,不同協程可以共享該連線池。

排隊機制(先進先出)使用協程的特殊功能實現:

\Swoole\Coroutine::resume($name):從$name佇列中恢復一個掛起的協程執行; \Swoole\Coroutine::suspend($name):將當前協程掛起到$name佇列上。 限制 每個worker都有各自的MySQL連線池,且不同worker之間無法共享彼此的MySQL連線池; 可能存在各個worker程序連線池利用率不同(依賴業務實現)。 優點 與獨立的連線池(worker程序間可共享的連線池實現)對比,無程序間通訊開銷; 獨立的連線池需要增加運維成本。

使用方法

  • 執行MysqlServer.php
  • 更改測試程式碼資料庫連線資訊
  • 執行test.php測試