Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pemantauan sambungan pangkalan data PHP: menjejaki penggunaan dan prestasi sambungan

Pemantauan sambungan pangkalan data PHP: menjejaki penggunaan dan prestasi sambungan

WBOY
WBOYasal
2024-05-31 17:46:00634semak imbas

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

Pemantauan Sambungan Pangkalan Data PHP: Jejaki penggunaan dan prestasi sambungan

Pemantauan sambungan adalah penting untuk mengoptimumkan prestasi pangkalan data dan memastikan kestabilan aplikasi. Artikel ini menerangkan cara menggunakan PHP untuk menjejak dan memantau penggunaan dan prestasi sambungan pangkalan data.

Pasang sambungan pangkalan data

Sebelum anda bermula, anda perlu memasang sambungan pangkalan data. Sambungan yang paling biasa digunakan ialah MySQLi dan PDO. Begini cara memasang kedua-dua sambungan:

MySQLi:

sudo apt-get install php-mysqli

PDO:

sudo apt-get install php-pdo

Sambung ke pangkalan data

Mula-mula, anda perlu menyambung ke pangkalan data. Anda boleh menggunakan kod berikut untuk mewujudkan sambungan MySQLi:

$mysqli = new mysqli("host", "user", "password", "database");

if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

Untuk PDO, anda boleh menggunakan kod berikut:

$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();
}

Untuk memantau sambungan menggunakan

anda boleh menggunakan mysqli_get_connection_stats() terbina dalam PHP dan mysqli_get_links_stats() mendapat maklumat tentang penggunaan sambungan. Berikut ialah contoh kod untuk memaparkan bilangan sambungan ke pangkalan data MySQL: 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);

Untuk PDO, anda boleh menggunakan kod berikut:

$conn->close();

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

🎜Memantau prestasi sambungan🎜🎜🎜Anda boleh memantau prestasi sambungan dengan mengukur masa pelaksanaan pertanyaan. Anda boleh menggunakan fungsi microtime(true) terbina dalam PHP: 🎜rrreee🎜Untuk PDO, anda boleh menggunakan kod berikut: 🎜rrreee🎜🎜Kes praktikal: menutup sambungan terbiar secara automatik🎜🎜🎜Pemantauan sambungan PHP boleh digunakan Tutup sambungan pangkalan data terbiar secara automatik. Berikut ialah contoh kod, menggunakan fungsi mysqli_reap_async_connections(): 🎜rrreee🎜Untuk PDO, anda boleh menggunakan kod berikut: 🎜rrreee

Atas ialah kandungan terperinci Pemantauan sambungan pangkalan data PHP: menjejaki penggunaan dan prestasi sambungan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn