次の3つの理由から、クエリの前にMySQLにpingを実行しないでください。
- クエリを実行しようとしたときにサーバーが起動することを確認する信頼できる方法ではありません。ping応答からクエリまでの間にサーバーが停止する可能性があります。
- サーバーが稼働している場合でも、クエリが失敗する可能性があります。
- Webサイトへのトラフィック量が増えると、データベースに多くのオーバーヘッドが追加されます。この方法を使用してデータベースの大量のリソースがpingで浪費されていることを確認したエンタープライズアプリでは珍しいことではありません。
データベース接続を処理する最良の方法は、エラー処理(try / catch)、再試行、およびトランザクションです。
これについては、MySQLパフォーマンスブログをご覧ください:有害と見なされるライブデータベース接続の確認
そのブログ投稿では、MySQLのそのインスタンスの負荷の73%が、DBが起動しているかどうかをチェックするアプリケーションによって引き起こされていることがわかります。