mysql嵌套查詢語句,mysql數(shù)據(jù)庫的最大連接數(shù)100是什么概念?
數(shù)據(jù)庫連接池并不能減少MySQL查詢的消耗,而是為了避免MySQL維持大量的數(shù)據(jù)庫連接.
MySQL最大連接數(shù)max_connections默認值為151(最大值可以過萬). 假設(shè)一個worker進程保持一個到MySQL的長連接. 當(dāng)Swoole服務(wù)的worker進程數(shù)(對應(yīng)CPU核心數(shù))超過151時,MySQL默認會拒絕新的連接. 假設(shè)一臺服務(wù)器CPU核心數(shù)為32,開啟32個Swoole worker進程. 當(dāng)服務(wù)器數(shù)量達到4臺時(32*4=128),MySQL才需要考慮配置更大的max_connections. 把max_connections調(diào)整為1510(默認值的10倍),可供40臺Swoole應(yīng)用服務(wù)器使用. 可見,當(dāng)Swoole應(yīng)用服務(wù)器過百時,數(shù)據(jù)庫連接池才有意義,否則就是簡單問題復(fù)雜化.
Swoole的MySQL連接池是通過異步swoole_mysql+SplQueue來實現(xiàn)的.
一般情況下,用PDO長連接就行了,連Swoole提供的異步MySQL客戶端都可以不用,這樣能保證數(shù)據(jù)庫邏輯能夠同步順序書寫,不需要像異步那樣嵌套回調(diào).