golang數據庫連接池參數設置


SetMaxOpenConns(maxOpenConns)

連接池最多同時打開的連接數。

這個maxOpenConns理應要設置得比mysql服務器的max_connections值要小。

一般設置為: 服務器cpu核心數 * 2 + 服務器有效磁盤數。參考這里

可用show variables like 'max_connections'; 查看服務器當前設置的最大連接數。

SetMaxIdleConns(maxIdleConns)

連接池里最大空閑連接數。必須要比maxOpenConns小;

SetConnMaxIdleTime(maxIdleTime)

連接池里面的連接最大空閑時長。

當連接持續空閑時長達到maxIdleTime后,該連接就會被關閉並從連接池移除,哪怕當前空閑連接數已經小於SetMaxIdleConns(maxIdleConns)設置的值。

連接每次被使用后,持續空閑時長會被重置,從0開始從新計算;

用show processlist; 可用查看mysql服務器上的連接信息,Command表示連接的當前狀態,Command為Sleep時表示休眠、空閑狀態,Time表示此狀態的已持續時長;

SetConnMaxLifetime(maxLifeTime)

連接池里面的連接最大存活時長。

maxLifeTime必須要比mysql服務器設置的wait_timeout小,否則會導致golang側連接池依然保留已被mysql服務器關閉了的連接。

mysql服務器的wait_timeout默認是8 hour,可通過show variables like 'wait_timeout'查看。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM