>백엔드 개발 >PHP 튜토리얼 >PHP 데이터베이스 연결 모니터링: 연결 사용량 및 성능 추적

PHP 데이터베이스 연결 모니터링: 연결 사용량 및 성능 추적

WBOY
WBOY원래의
2024-05-31 17:46:00667검색

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

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

PDO의 경우 다음 코드를 사용할 수 있습니다.

$conn->close();

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

🎜연결 성능 ​​모니터링🎜🎜🎜쿼리 실행 시간을 측정하여 연결 성능을 모니터링할 수 있습니다. PHP에 내장된 microtime(true) 함수를 사용할 수 있습니다: 🎜rrreee🎜PDO의 경우 다음 코드를 사용할 수 있습니다: 🎜rrreee🎜🎜실용 사례: 유휴 연결을 자동으로 닫습니다🎜🎜🎜PHP 연결 모니터링 유휴 데이터베이스 연결을 자동으로 닫는 데 사용할 수 있습니다. 다음은 mysqli_reap_async_connections() 함수를 사용하는 샘플 코드입니다. 🎜rrreee🎜PDO의 경우 다음 코드를 사용할 수 있습니다. 🎜rrreee

위 내용은 PHP 데이터베이스 연결 모니터링: 연결 사용량 및 성능 추적의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.