Nasıl bir mySQL sorgu hızını test?

4 Cevap php

Ben aşağıdaki gibi bir seçme ve sorgu var ...

    $sql = "SELECT * 
        FROM notifications 
        WHERE to_id='".$userid."' 
            AND (alert_read != '1' OR user_read != '1') 
        ORDER BY alert_time DESC";
    $result = mysql_query($sql);

nasıl sorgu çalıştırmak ne kadar sürdü test?

4 Cevap

Size özel oturumu için bir MySQL sistem değişkeni profiling which is created in the INFORMATION_SCHEMA veritabanı yoktur. Aşağıdaki kod bakın:

mysql> set profiling=1;

Sadece basit sorguyu yürütmek ... sorgunun icra oturumu INFORMATION_SCHEMA saklanacaktır.

mysql> select count(*) from client where broker_id=2;

Sorgu tamamlandıktan sonra, sadece bu satırı çalıştırın:

mysql> show profiles;

hangi sorguları tüm yürütme süresini gösterir. Sadece çalıştırmak ve sorgu yürütme / hız almak için aşağıdaki gibi sorgu kimliği söylemek.

mysql> show profile for query 1;

Eğer mysql konsolundan sizden sorguyu çalıştırırsanız, hız onlar koştu sorgulamak hemen sonra görüntülenir.

mysql_query önce ve sonra php fonksiyonu microtime () kullanın ve sonra sonuçları karşılaştırın.

$time1 = (int) microtime();
$result = mysql_query($sql);
$time2 = (int) microtime();

echo ($time2 - $time1);

(Eğer microtime (true) kullanırsanız - şamandıra numarası verir, daha az acurate numarası alacak)