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 資料庫的連線數:<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>$connection_info = mysqli_get_connection_stats($mysqli);
echo "Number of open connections: " . $connection_info['connection_count'] . "\n";</pre><div class="contentsignin">登入後複製</div></div>
對於PDO,可以使用以下程式碼:
$stats = $conn->query("SHOW VARIABLES LIKE 'Connections'"); echo "Number of open connections: " . $stats->rowCount() . "\n";
#可以透過測量查詢執行時間來監控連線效能。你可以使用PHP 內建的
microtime(true) 函數:<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>$start = microtime(true);
$query = "SELECT * FROM table";
$result = $mysqli->query($query);
$end = microtime(true);
echo "Query execution time: " . ($end - $start) . " seconds\n";</pre><div class="contentsignin">登入後複製</div></div>
對於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() 函數:<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>mysqli_reap_async_connections($mysqli);
// Repeat the reaping every 60 seconds
sleep(60);</pre><div class="contentsignin">登入後複製</div></div>
對於 PDO,可以使用以下程式碼:
$conn->close(); // Repeat the closing every 60 seconds sleep(60);
以上是PHP 資料庫連線監控:追蹤連線使用與效能的詳細內容。更多資訊請關注PHP中文網其他相關文章!