9.3 コネクションプールのパラメーターをチューニングする

Goでは標準ライブラリの database/sql パッケージがコネクションプーリングを行います1。コネクションプールに関してパラメーターチューニングできるAPIは以下の4つであり、とてもシンプルです。

表9-2: コネクションプーリングに関するAPI

API名

用途

デフォルト値

SetMaxOpenConns

同時にデータベースへ接続できるコネクション数

制限なし

SetMaxIdleConns

アイドルのコネクションとしてコネクションを保持する最大の数

2

SetConnMaxLifetime

コネクションを再利用できる最大時間

制限なし

SetConnMaxIdleTime

コネクションがアイドル状態でいられる最大時間

制限なし

APIのうち SetMaxOpenConnsSetMaxIdleConns は Go 1.2までで実装されているコネクションプーリング全体に関するパラメーター、 SetConnMaxLifetime は Go 1.6で実装されたコネクションの再利用時間に関するパラメーターを設定するAPIです。デフォルトの設定では、 SetMaxOpenConns はコネクションプールを無制限に確保します。コネクションプールに使用可能なアイドル接続のコネクションが存在しない場合、新しいコネクションが生成されます。しかし、無制限にコネクションプールを拡張したとしても、データベース側の設定でコネクションを受け入れられることが前提になります。MySQLやPostgreSQLの max_connections パラメーターが、データベース側での同時接続数の限界になります。 ...