PHP 데이터베이스 연결 모니터링: 연결 사용량 및 성능 추적
연결 모니터링은 데이터베이스 성능을 최적화하고 애플리케이션 안정성을 보장하는 데 필수적입니다. 이 문서에서는 PHP를 사용하여 데이터베이스 연결의 사용량과 성능을 추적하고 모니터링하는 방법을 설명합니다.
데이터베이스 확장 설치
시작하기 전에 데이터베이스 확장을 설치해야 합니다. 가장 일반적으로 사용되는 확장은 MySQLi와 PDO입니다. 두 확장을 모두 설치하는 방법은 다음과 같습니다.
MySQLi:
sudo apt-get install php-mysqli
PDO:
sudo apt-get install php-pdo
데이터베이스에 연결
먼저 데이터베이스에 연결해야 합니다. 다음 코드를 사용하여 MySQLi 연결을 설정할 수 있습니다.
$mysqli = new mysqli("host", "user", "password", "database"); if ($mysqli->connect_errno) { echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; }
PDO의 경우 다음 코드를 사용할 수 있습니다.
$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(); }
을 사용하여 연결을 모니터링하려면 PHP에 내장된 mysqli_get_connection_stats()를 사용할 수 있습니다.
및 mysqli_get_links_stats()
함수는 연결 사용에 대한 정보를 가져옵니다. 다음은 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);
$conn->close(); // Repeat the closing every 60 seconds sleep(60);
microtime(true)
함수를 사용할 수 있습니다: 🎜rrreee🎜PDO의 경우 다음 코드를 사용할 수 있습니다: 🎜rrreee🎜🎜실용 사례: 유휴 연결을 자동으로 닫습니다🎜🎜🎜PHP 연결 모니터링 유휴 데이터베이스 연결을 자동으로 닫는 데 사용할 수 있습니다. 다음은 mysqli_reap_async_connections()
함수를 사용하는 샘플 코드입니다. 🎜rrreee🎜PDO의 경우 다음 코드를 사용할 수 있습니다. 🎜rrreee위 내용은 PHP 데이터베이스 연결 모니터링: 연결 사용량 및 성능 추적의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!