• 28-09-2014, 16:11:37
    #10
    tanermacit adlı üyeden alıntı: mesajı görüntüle
    Teşekkürler şimdi sonuç bastırırken en çok firma adı, yetkili ve telefonu kullanılıyor ve şehir ilçe adı kullanılıyor diyelim yani ben firma adına ve şehir adına mı index vermeliyim ? id kısımları zaten primary olup bildiğim kadarıyla zaten otomatik indexli oluyorlar.

    Ben şu an testler yapıyorum sonuçları sizinle de paylaşırım sorgu bu haliyle ortalama 9 saniye sürüyor.
    Select .... from arasindaki ve where den sonraki alanlari indexleyin. Yanlis index veya fazla index sorgunuzu hafifletmeyebilir tam tersi daha fazla da surebilir. Dogru alanlari indexlemek gerek

    GT-I9200 cihazımdan Tapatalk kullanılarak gönderildi
  • 28-09-2014, 16:14:38
    #11
    mtl adlı üyeden alıntı: mesajı görüntüle
    Select .... from arasindaki ve where den sonraki alanlari indexleyin. Yanlis index veya fazla index sorgunuzu hafifletmeyebilir tam tersi daha fazla da surebilir. Dogru alanlari indexlemek gerek

    GT-I9200 cihazımdan Tapatalk kullanılarak gönderildi
    Üstat normalde where den sonra pek birşey kullanmıyorum sadece onay=1 kullanıyorum yani bu sorguda biraz tesadüfi olarak where den sonraki şeyleri kullandım normalde sorgum şu şekilde. Yani where den sonra sadece onay=1 var . Bu durumda nereyi indexleyeceğim.

    SELECT firma.adi,firma.tel, firma.cep, firma.adres, firma.etiket, sehir.ad, ilce.ilce_adi, ustkat.ust_adi FROM `firma` inner join sektor on sektor.s_fid=firma.id inner join ustkat on ustkat.ust_id=sektor.s_ustid inner join sehir on sehir.id=firma.sehir inner join ilce on ilce.ilceid=firma.ilce WHERE firma.onay='1' ORDER BY firma.bastarih ASC
  • 28-09-2014, 16:16:57
    #12
    tanermacit adlı üyeden alıntı: mesajı görüntüle
    Üstat normalde where den sonra pek birşey kullanmıyorum sadece onay=1 kullanıyorum yani bu sorguda biraz tesadüfi olarak where den sonraki şeyleri kullandım normalde sorgum şu şekilde. Yani where den sonra sadece onay=1 var . Bu durumda nereyi indexleyeceğim.

    SELECT firma.adi,firma.tel, firma.cep, firma.adres, firma.etiket, sehir.ad, ilce.ilce_adi, ustkat.ust_adi FROM `firma` inner join sektor on sektor.s_fid=firma.id inner join ustkat on ustkat.ust_id=sektor.s_ustid inner join sehir on sehir.id=firma.sehir inner join ilce on ilce.ilceid=firma.ilce WHERE firma.onay='1' ORDER BY firma.bastarih ASC
    Dedigim gibi select......from arasi, where deki onayi ve Order by yaptiginiz hucreyi de indexlemeniz gerek.

    GT-I9200 cihazımdan Tapatalk kullanılarak gönderildi
  • 28-09-2014, 16:26:27
    #13
    Teşekkürler deniyorum
  • 28-09-2014, 19:15:58
    #14
    sektor.s_fid
    firma.id
    ustkat.ust_id
    sektor.s_ustid
    sehir.id
    firma.sehir
    ilce.ilceid
    firma.ilce
    firma.`adi`
    firma.adres
    firma.sehir
    firma.ilce
    firma.etiket!=''
    ustkat.`ust_id`


    Bu alanların tümüne index eklemen lazım. Bunların hepsi koşul için kullanılıyor.
  • 28-09-2014, 20:43:08
    #15
    tanermacit adlı üyeden alıntı: mesajı görüntüle
    Merhaba mysql index kullanımı için bir yardıma ihtiyacım var.

     SELECT firma.adi, firma.adres, firma.etiket, sehir.ad, ilce.ilce_adi, ustkat.ust_adi 
     FROM `firma`
     inner join sektor on sektor.s_fid=firma.id 
     inner join ustkat on ustkat.ust_id=sektor.s_ustid 
     inner join sehir on sehir.id=firma.sehir 
    inner join ilce on ilce.ilceid=firma.ilce 
    WHERE firma.`adi`!='' and firma.adres!='' and firma.sehir!='' and firma.ilce!='' and firma.etiket!=''  
    ORDER BY ustkat.`ust_id` ASC  "
    YUkarıdaki sorgu büyük verilerde çok uzun sürebiliyor bunun için hangi yapılara index eklemem gerekiyor?
    GROUP BY kullanirsaniz daha olumlu sonuc elde edebilirsiniz ve Innodb daha iyi bana göre daha hizli calisiyor size daha iyi bir query hazirladim.

    SELECT firma.adi, firma.adres, firma.etiket, sehir.ad, ilce.ilce_adi, ustkat.ust_adi 
    FROM `firma`
    INNER JOIN sektor on sektor.s_fid=firma.id 
    LEFT JOIN ustkat on ustkat.ust_id=sektor.s_ustid 
    RIGHT JOIN sehir on sehir.id=firma.sehir 
    FULL OUTER JOIN ilce on ilce.ilceid=firma.ilce
    GROUP BY firma.adi, firma.adres, firma.sehir, firma.ilce, firma.etiket 
    ORDER BY ustkat.ust_id ASC