Rumah >pembangunan bahagian belakang >tutorial php >Pemantauan sambungan pangkalan data PHP: menjejaki penggunaan dan prestasi sambungan
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: 🎜rrreeeAtas 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!