PHP データベース接続の監視: 接続の使用状況とパフォーマンスを追跡します
接続の監視は、データベースのパフォーマンスを最適化し、アプリケーションの安定性を確保するために不可欠です。この記事では、PHP を使用してデータベース接続の使用状況とパフォーマンスを追跡および監視する方法について説明します。
データベース拡張機能をインストールします
開始する前に、データベース拡張機能をインストールする必要があります。最も一般的に使用される拡張機能は、MySQLi と PDO です。両方の拡張機能をインストールする方法は次のとおりです。
MySQLi:
sudo apt-get install php-mysqli
PDO:
sudo apt-get install php-pdo
データベースに接続します
まず、データベースに接続する必要があります。次のコードを使用して、MySQLi 接続を確立できます:
$mysqli = new mysqli("host", "user", "password", "database"); if ($mysqli->connect_errno) { echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; }
PDO の場合、次のコードを使用できます:
を使用して接続を監視するには、PHP の組み込み mysqli_get_connection_stats() を使用できます。
と mysqli_get_links_stats()
関数は、接続の使用状況に関する情報を取得します。 MySQL データベースへの接続数を表示するサンプル コードを次に示します。
$dsn = 'mysql:host=host;dbname=database'; $user = 'user'; $password = 'password'; try { $conn = new PDO($dsn, $user, $password); } catch (\PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); }
$connection_info = mysqli_get_connection_stats($mysqli); echo "Number of open connections: " . $connection_info['connection_count'] . "\n";
mysqli_get_connection_stats()
和 mysqli_get_links_stats()
函数获取有关连接使用的信息。以下是一个示例代码,用于显示与 MySQL 数据库的连接数:$stats = $conn->query("SHOW VARIABLES LIKE 'Connections'"); echo "Number of open connections: " . $stats->rowCount() . "\n";
对于 PDO,可以使用以下代码:
$start = microtime(true); $query = "SELECT * FROM table"; $result = $mysqli->query($query); $end = microtime(true); echo "Query execution time: " . ($end - $start) . " seconds\n";
监控连接性能
可以通过测量查询执行时间来监控连接性能。你可以使用 PHP 内置的 microtime(true)
函数:
$start = microtime(true); $statement = $conn->prepare($query); $statement->execute(); $end = microtime(true); echo "Query execution time: " . ($end - $start) . " seconds\n";
对于 PDO,可以使用以下代码:
mysqli_reap_async_connections($mysqli); // Repeat the reaping every 60 seconds sleep(60);
实战案例:自动关闭空闲连接
PHP 连接监控可以用来自动关闭空闲的数据库连接。以下是一个示例代码,使用 mysqli_reap_async_connections()
microtime(true)
関数を使用できます: 🎜$conn->close(); // Repeat the closing every 60 seconds sleep(60);
mysqli_reap_async_connections()
関数を使用したサンプル コードを次に示します。 🎜rrreee🎜 PDO の場合、次のコードを使用できます。 🎜rrreee以上がPHP データベース接続の監視: 接続の使用状況とパフォーマンスを追跡するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。