Heim >Backend-Entwicklung >PHP-Tutorial >Überwachung der PHP-Datenbankverbindung: Verfolgen Sie die Verbindungsnutzung und -leistung

Überwachung der PHP-Datenbankverbindung: Verfolgen Sie die Verbindungsnutzung und -leistung

WBOY
WBOYOriginal
2024-05-31 17:46:00666Durchsuche

PHP 数据库连接监控:跟踪连接使用和性能

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);

Für PDO können Sie den folgenden Code verwenden:

$conn->close();

// Repeat the closing every 60 seconds
sleep(60);

🎜Verbindungsleistung überwachen🎜🎜🎜Sie können die Verbindungsleistung überwachen, indem Sie die Abfrageausführungszeit messen. Sie können die in PHP integrierte Funktion 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: 🎜rrreee

Das 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn