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

Pemantauan sambungan pangkalan data PHP: menjejaki penggunaan dan prestasi sambungan

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2024-05-31 17:46:00
asal
705 orang telah melayarinya

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
Salin selepas log masuk

PDO:

sudo apt-get install php-pdo
Salin selepas log masuk

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;
}
Salin selepas log masuk

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();
}
Salin selepas log masuk

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";
Salin selepas log masuk

对于 PDO,可以使用以下代码:

$stats = $conn->query("SHOW VARIABLES LIKE 'Connections'");
echo "Number of open connections: " . $stats->rowCount() . "\n";
Salin selepas log masuk

监控连接性能

可以通过测量查询执行时间来监控连接性能。你可以使用 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";
Salin selepas log masuk

对于 PDO,可以使用以下代码:

$start = microtime(true);
$statement = $conn->prepare($query);
$statement->execute();
$end = microtime(true);
echo "Query execution time: " . ($end - $start) . " seconds\n";
Salin selepas log masuk

实战案例:自动关闭空闲连接

PHP 连接监控可以用来自动关闭空闲的数据库连接。以下是一个示例代码,使用 mysqli_reap_async_connections()

mysqli_reap_async_connections($mysqli);

// Repeat the reaping every 60 seconds
sleep(60);
Salin selepas log masuk

Untuk PDO, anda boleh menggunakan kod berikut:

$conn->close();

// Repeat the closing every 60 seconds
sleep(60);
Salin selepas log masuk
🎜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!

Label berkaitan:
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan