PHP-Datenbankverbindungsüberwachung: Verfolgen Sie die Verbindungsnutzung und -leistung.
Die Verbindungsüberwachung ist für die Optimierung der Datenbankleistung und die Gewährleistung der Anwendungsstabilität unerlässlich. In diesem Artikel wird erläutert, wie Sie mit PHP die Nutzung und Leistung von Datenbankverbindungen verfolgen und überwachen.
Installieren Sie die Datenbankerweiterung
Bevor Sie beginnen, müssen Sie die Datenbankerweiterung installieren. Die am häufigsten verwendeten Erweiterungen sind MySQLi und PDO. So installieren Sie beide Erweiterungen:
MySQLi:
sudo apt-get install php-mysqli
PDO:
sudo apt-get install php-pdo
Mit der Datenbank verbinden
Zuerst müssen Sie eine Verbindung mit der Datenbank herstellen. Sie können den folgenden Code verwenden, um eine MySQLi-Verbindung herzustellen:
$mysqli = new mysqli("host", "user", "password", "database"); if ($mysqli->connect_errno) { echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; }
Für PDO können Sie den folgenden Code verwenden:
$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(); }
Um die Verbindung mit
zu überwachen, können Sie den in PHP integrierten mysqli_get_connection_stats() verwenden
und mysqli_get_links_stats()
ruft Informationen über die Verbindungsnutzung ab. Hier ist ein Beispielcode, um die Anzahl der Verbindungen zu einer MySQL-Datenbank anzuzeigen: mysqli_get_connection_stats()
和 mysqli_get_links_stats()
函数获取有关连接使用的信息。以下是一个示例代码,用于显示与 MySQL 数据库的连接数:
$connection_info = mysqli_get_connection_stats($mysqli); echo "Number of open connections: " . $connection_info['connection_count'] . "\n";
对于 PDO,可以使用以下代码:
$stats = $conn->query("SHOW VARIABLES LIKE 'Connections'"); echo "Number of open connections: " . $stats->rowCount() . "\n";
监控连接性能
可以通过测量查询执行时间来监控连接性能。你可以使用 PHP 内置的 microtime(true)
函数:
$start = microtime(true); $query = "SELECT * FROM table"; $result = $mysqli->query($query); $end = microtime(true); echo "Query execution time: " . ($end - $start) . " seconds\n";
对于 PDO,可以使用以下代码:
$start = microtime(true); $statement = $conn->prepare($query); $statement->execute(); $end = microtime(true); echo "Query execution time: " . ($end - $start) . " seconds\n";
实战案例:自动关闭空闲连接
PHP 连接监控可以用来自动关闭空闲的数据库连接。以下是一个示例代码,使用 mysqli_reap_async_connections()
mysqli_reap_async_connections($mysqli); // Repeat the reaping every 60 seconds sleep(60);
$conn->close(); // Repeat the closing every 60 seconds sleep(60);
microtime(true)
verwenden: 🎜rrreee🎜Für PDO können Sie den folgenden Code verwenden: 🎜rrreee🎜🎜Praktischer Fall: Leerlaufverbindungen automatisch schließen🎜🎜🎜PHP-Verbindungsüberwachung kann verwendet werden, um inaktive Datenbankverbindungen automatisch zu schließen. Hier ist ein Beispielcode, der die Funktion mysqli_reap_async_connections()
verwendet: 🎜rrreee🎜Für PDO können Sie den folgenden Code verwenden: 🎜rrreeeDas obige ist der detaillierte Inhalt vonÜberwachung der PHP-Datenbankverbindung: Verfolgen Sie die Verbindungsnutzung und -leistung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!