Sobes.tech
Middle

Milliseid tööriistu või meetodeid saab kasutada SQL-päringute täitmise kiiruse jälgimiseks?

sobes.tech AI

Vastus AI-lt

  • Pikkade küsimuste logimine andmebaasis: Enamik andmebaasüsteeme (MySQL, PostgreSQL jne) omavad sisseehitatud funktsiooni, mis logib päringuid, mille täitmise aeg ületab määratud künnise. Näiteks MySQL-is on selleks parameetrid slow_query_log ja long_query_time.
  • Päringute profiilimine: Kasutades käsku EXPLAIN (MySQL ja PostgreSQL) või sarnaseid tööriistu, saab analüüsida päringu täitmise plaani, mis aitab mõista, kuidas andmebaas päringut töötleb ja millised operatsioonid on kõige kulukamad.
EXPLAIN SELECT * FROM users WHERE status = 'active';
  • Sisseehitatud andmebaasi tööriistad jõudluse jälgimiseks: Andmebaasid pakuvad sageli oma tööriistu aktiivsuse jälgimiseks, sealhulgas päringute täitmise jälgimiseks. Näiteks MySQL Performance Schema.
  • PHP laiendused jälgimiseks: Mõned PHP laiendused (näiteks xdebug profiilimisrežiimis või spetsialiseeritud APM-tööriistad) võivad aidata jälgida koodi täitmise aega, sealhulgas andmebaasiga suhtlemist.
  • APM (Application Performance Monitoring) süsteemid: Spetsialiseeritud jõudluse jälgimise süsteemid (näiteks Datadog, New Relic, Sentry) võivad automaatselt instrumenteerida koodi ja koguda metrikat SQL-päringute täitmise aja kohta.
  • Käsitsi logimine: Koodi lisamine, et fikseerida aeg enne ja pärast päringu täitmist.
<?php

$start_time = microtime(true);

// SQL-päringu täitmine
$stmt = $conn->prepare("SELECT * FROM products WHERE category = ?");
$stmt->execute([$categoryId]);
$results = $stmt->fetchAll();

$end_time = microtime(true);
$query_time = ($end_time - $start_time) * 1000; // Millisekundites

// Täitmisaja logimine
error_log("Päring täidetud {$query_time} ms jooksul");

?>
  • ORM kasutamine logimise/profiilimise toetusega: Raamistikud ja ORM-id pakuvad sageli oma mehhanisme päringute logimiseks või profiilimiseks, mida nad teostavad.