首頁  >  文章  >  資料庫  >  MySQL資料庫連線池SMProxy

MySQL資料庫連線池SMProxy

藏色散人
藏色散人轉載
2019-02-18 11:38:062853瀏覽

Swoole MySQL Proxy,一個基於 MySQL 協議,Swoole 開發的MySQL資料庫連接池。

MySQL資料庫連線池SMProxy

原理

將資料庫連接作為物件儲存在記憶體中,當使用者需要存取資料庫時,首次會建立連接,後面並非建立一個新的連接,而是從連接池中取出一個已建立的空閒連接物件。使用完畢後,使用者並非將連線關閉,而是將連線放回連線池中,以供下一個請求存取使用。而連結的建立、斷開都由連接池本身來管理。

同時,也可以透過設定連線池的參數來控制連線池中的初始連線數、連線的上下限數以及每個連線的最大使用次數、最大空閒時間等等。也可以透過其自身的管理機制來監視資料庫連線的數量、使用情況等。超出最大連線數會採用協程掛起,等到有連線關閉再恢復協程繼續操作。

特性

-支援讀寫分離

-支援資料庫連線池,能夠有效解決PHP 帶來的資料庫連線瓶頸

-支援SQL92 標準

-採用協程調度

-支援多個資料庫連接,多個資料庫,多個用戶,靈活搭配

-遵守MySQL 原生協議,跨語言,跨平台的通用中間件代理

-支援MySQL 事務

-支援HandshakeV10 協定版本

-完美相容MySQL4.1 - 8.0

-相容各大框架,無縫提升效能

設計初衷

#PHP 沒有連線池,所以高並發時資料庫會出現連線打滿的狀況,Mycat 等資料庫中間件會出現部分SQL 無法使用,例如不支援批量添加等,而且過於臃腫。所以就自己編寫了這個僅支援連接池和讀寫分離的輕量級中間件,使用 Swoole 協程調度 HandshakeV10 協議轉發使程式更加穩定,不用像 Mycat 一樣解析所有 SQL 包體,增加複雜度。

推薦教學:《mysql教學http://www.php.cn/course/list/51.html

以上是MySQL資料庫連線池SMProxy的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:oschina.net。如有侵權,請聯絡admin@php.cn刪除