【Laravel】Mysql とのコネクションをプーリングさせる方法
Laravel で Mysql とのコネクションプーリングを行う方法メモ。
プーリングさせる意味
PHPではデフォルトでDBへの接続をプーリングさせません。
ですが、DBへのコネクション数を減らして負荷を下げる意味では行う方がベターです。
また多数のSQLを発行する場面で一々コネクションの発生が抑えられるなどの効果があります。
修正
PDO::ATTR_PERSISTENT
の設定を追加。PDO::ATTR_PERSISTENT
はコネクションプーリングの設定です。
PHP: 接続、および接続の管理 - Manual #例4 持続的な接続
<?php
// ~省略~~~~~~~~~
'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
PDO::ATTR_PERSISTENT => true, // 追加
]) : [],
],