sql >> データベース >  >> RDS >> Mysql

Basicdatasource接続タイムアウトの問題(mysqlを使用)

    試すことができること:

    1. setMaxWait(-1) BasicDataSourceで。これは、接続を無期限に待機するように指示します。

    2. wait_timeoutを確認してください MySQLサーバーではデフォルトの8時間に設定されています。

    3. ?autoReconnect=trueを設定します JDBCURLで

    4. setTestOnBorrow(true) BasicDataSourceで。これにより、古い接続が渡されるのを防ぐことができますが、アプリにオーバーヘッドが追加されます(ただし、このような長い単一のクエリを既に取得している場合は、おそらくその部分に気付くことさえありません)。

    一般的に、接続を再利用し続けるのは悪い考えだと思います。私にとって、プールを持つことのポイントは、私がそれをする必要がないということです。

    クエリはトランザクションですか?本当に長いクエリがメジャーテーブルをロックしているのでしょうか?




    1. メソッドIlluminate\Support \ Collection::saveはLaravelに存在しません

    2. SELECTを使用してx番目から開始して勝者をMSQLに照会します

    3. RailsアプリのMongoDBまたはMySQL、あるいはその両方

    4. 一意の制約に違反したためにmysqlの更新/挿入の失敗を検出する