• 05-05-2015, 21:28:40
    #1
    Merhaba arkadaşlar,

    $sql="SELECT COUNT('x') as num  FROM    firma   where firma.onay=1 and firma.bireysel=0 ";
    $res = mysqli_query($i_link,$sql);
    $row= mysqli_fetch_row($res);
    echo    $db_count =  $row['0'];


    Yukarıda ki kodda 570.000 satırlı bir firma tablosunun sayısını alıyorum.
    Ama bu sorgu hiç 5-6 saniyenin altına düşmüyor. hem onay hem de bireysel de INDEX tanımlı. Bu sorguyu hızlandırmak için öneriniz var mı? Amacım 1-2 saniyenin altına çekmek.

    Ayrıca sadece şöyle yaparsam yarım saniye sürüyor.. Yani koşulu teke indiririrsem yarım saniye ama koşulu birden fazl ayaparsam 6 saniye sürüyor, bu arama alanı sorgusu olacağı için birdne fazla sorgu kullanmam şart, önerinzi var mı?

    NOT: mysql_num_rows bundan çok daha yavaş..

    //bu şekilde yarım saniye yani and bireysel=0 ı silersem
    SELECT COUNT('x') as num  FROM    firma   where firma.onay=1
  • 05-05-2015, 21:34:27
    #2
    Üyeliği durduruldu
    Sistemi yormasını istemiyorsan

    SELECT SQL_CALC_FOUND_ROWS * FROM firma where onay='1' LIMIT 0
    Sistem yorulsun hızlı olsun istiyorsan COUNT(*) a devam.
  • 06-05-2015, 01:40:31
    #3
    dem_baba adlı üyeden alıntı: mesajı görüntüle
    Sistemi yormasını istemiyorsan

    SELECT SQL_CALC_FOUND_ROWS * FROM firma where onay='1' LIMIT 0
    Sistem yorulsun hızlı olsun istiyorsan COUNT(*) a devam.
    Teşekkürler ama BU kodu tam olarak nasıl çalıştırmak gerekiyor..
  • 06-05-2015, 01:49:12
    #4
    Üyeliği durduruldu
    tanermacit adlı üyeden alıntı: mesajı görüntüle
    Teşekkürler ama BU kodu tam olarak nasıl çalıştırmak gerekiyor..
    Sorgu aynı bahsettiğim şekilde fakat yavaş çalışır serverı yormaz ters mantık çalışıyor phpmyadmin bu şekilde kullanıyor sorgusunu
  • 06-05-2015, 02:01:34
    #5
    dem_baba adlı üyeden alıntı: mesajı görüntüle
    Sorgu aynı bahsettiğim şekilde fakat yavaş çalışır serverı yormaz ters mantık çalışıyor phpmyadmin bu şekilde kullanıyor sorgusunu


    $sql=mysqli_query($i_link,"SELECT SQL_CALC_FOUND_ROWS * FROM firma where onay='1' LIMIT 0");
    $dongu=mysqli_fetch_array($sql);
    echo $dongu['0'];

    php ile satır sayısını nasıl yazdırmalıyım, bu şekilde yazmıyor mesela.
  • 06-05-2015, 02:06:04
    #6
    Üyeliği durduruldu
    echo $dongu;
  • 06-05-2015, 02:14:46
    #7
    dem_baba yardım için teşekkürler..

    Ancak şu şekilde çalıştırabildim ve sorgu 3-4 saniyeye düştü..


    $Result=mysqli_query($i_link,"SELECT SQL_CALC_FOUND_ROWS  id From firma where onay=1 and bireysel=0 LIMIT 10"); 
    $NumberOfResults=mysqli_num_rows($Result); 
    $NORResult=mysqli_query($i_link,"Select FOUND_ROWS()"); 
    $NORRow=mysqli_fetch_array($NORResult); 
    $NOR=$NORRow["FOUND_ROWS()"]; 
    echo $NOR;
  • 06-05-2015, 03:41:59
    #8
    Üyeliği durduruldu
    slow query hocam tavsiye ederim server hoplatmıyor.
  • 06-05-2015, 07:56:32
    #9
    Onay ve bireysel sütunlarını tek index olarak oluşturun sorgu hızınız yükselecektir.