mysqli_get_connection_stats în PHP

mysqli avansat PHP 5.3+

Returnează statistici despre o conexiune: octeți trimiși și primiți, interogări, rânduri citite.

Sintaxă
mysqli_get_connection_stats(mysqli $mysql): array

Ce face mysqli_get_connection_stats

Driverul mysqlnd numără tot ce se întâmplă pe conexiune, în peste 160 de contoare: bytes_sent, bytes_received, result_set_queries (interogări cu rânduri), non_result_set_queries, rows_fetched_from_server_normal, slow_queries și altele. Sunt utile pentru a afla de ce o pagină este lentă.

Exemplele de pe această pagină folosesc baza de date magazin, cu tabelul produse (coloanele id INT AUTO_INCREMENT, nume VARCHAR(100) NOT NULL, pret INT și stoc INT) și patru rânduri: Laptop (3200 lei, 5 buc.), Mouse (80 lei, 40 buc.), Monitor (900 lei, 0 buc.) și Tastatură (150 lei, 12 buc.). Comenzile SQL sunt explicate în secțiunea MySQL. Rezultatele au fost scrise pentru MySQL 8, pentru că exemplele au nevoie de un server de baze de date.

Parametri

Parametru Descriere
$mysql Conexiunea.

Ce returnează

Un tablou asociativ cu statisticile.

Exemple

Exemplul 1: Câte interogări a făcut pagina

<?php
$conn = mysqli_connect("localhost", "ana", "parola_ta", "magazin");

mysqli_query($conn, "SELECT * FROM produse");
mysqli_query($conn, "SELECT COUNT(*) FROM produse");
mysqli_query($conn, "UPDATE produse SET stoc = stoc WHERE id = 1");

$s = mysqli_get_connection_stats($conn);
foreach (["result_set_queries", "non_result_set_queries", "rows_fetched_from_server_normal", "bytes_sent", "bytes_received"] as $cheie) {
    echo "$cheie: {$s[$cheie]}\n";
}

Rezultat posibil (diferă la fiecare rulare)

result_set_queries: 2
non_result_set_queries: 1
rows_fetched_from_server_normal: 5
bytes_sent: 251
bytes_received: 838

Greșeli frecvente

  • Cauți aceste statistici pe un PHP compilat cu libmysqlclient în loc de mysqlnd. Funcția există doar cu mysqlnd, varianta implicită din PHP modern.

Comenzi înrudite

  • mysqli_get_client_stats: Returnează statisticile mysqlnd adunate pentru toate conexiunile din procesul PHP curent.
  • mysqli_get_links_stats: Returnează câte conexiuni mysqli sunt deschise și câte conexiuni persistente sunt active sau păstrate.
  • mysqli_stat: Returnează starea serverului MySQL ca text: de cât timp rulează, câte conexiuni și interogări are.