Nasıl sayfa başına kullanılan MySQL sorgularının toplam sayısı sayabilirsiniz?

4 Cevap php

Bir sayfada kullanılan MySQL sorgularının toplam sayısını sağlayacak PHP veya MySQL yerleşik bir işlevi var mı? Ben "20 sorgu ile 0.6 saniyede oluşturuldu" gibi bir şey söyleyerek altındaki bir mesaj var siteleri (özellikle forumlar) bir sürü gördüm.

Yerleşik bir şey yoksa o zaman ben onları saymak için benim veritabanı sınıfının şey eklemek gerekir, ama zaten hazır olacağını işlevsellik tür gibi görünüyor.

4 Cevap

Seçenek bir sarıcı aracılığıyla sorguları tüm geçmek olacaktır:

function custom_mysql_query($sql)
{
    $GLOBAL['query_count'] ++;
    return mysql_query($sql);
}

O vb resimde sadece ve hata işleme olmazsa, için var unutmayın

Çalıştırmak sorgu sayısı için MySQL sorgu olabilir:

mysql> SHOW STATUS LIKE 'Com_select';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Com_select    | 2     | 
+---------------+-------+
1 row in set (0.00 sec)

Gibi bir şey yapmak isteyebilirsiniz:

SHOW STATUS LIKE 'Com_%';

ve sonra Com_select, Com_update, Com_insert ve Com_delete birlikte ekleyin

Ne yapmam o sınıfta sorgu yöntemleri çalıştırılan her zaman querycount adında bir değişkene 1 ekler sayar bir sql sorgusu sınıfı, ben çalışan bir toplam var Yani yol yapmak olduğunu.

PHP'nin mysql / mysqli uzantıları yerleşik bir şey yoktur. Bir DB soyutlama katmanı kullanarak ediyorsanız, size bu bilgi verecektir inşa analiz / kıyaslama bazı tip olabilir.

Off-hand, biliyorum Kohana Profiler kütüphane ile yapar. Ben en çok Çatınızın DB kütüphaneleri benzer bir şey yapmak zannedebilir.

Eğer bir 3. parti çerçeve veya veritabanı soyutlama katmanı kullanmak için kararsız iseniz, ben sadece php5 yerleşik PDO sınıf sınıflara göre başarı oldu. Bazı temel kıyaslama bilgi ve sorgu sayıları eklemek ve query() veya execute() üst sınıfa aracılığıyla çağırır geçebilir.

Db sınıfında, küresellerle önlemek için:

class db {
    public static $query_count = 0;

    public static function query($str) { 
        self::$query_count++;
        // your db query method here
    }
}

Sonra sadece bu gibi statik sorgu sayısını erişmek:

<?= db::$query_count ?>