folder Tahribat.com Forumları
linefolder Database - Veritabanı
linefolder Php (Pdo) + Mysql İle Sorgu Hızım Normal Mi ?



Php (Pdo) + Mysql İle Sorgu Hızım Normal Mi ?

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek

    Php 5.6 + Mysql kullanıyorum. Örnek olarak oluşturduğum   tid,ad,soyad,durum  kolonlarına sahip tabloma 3.3 milyon veri ekledim rastgele. Durum kolonunu indexle dim.  pdo ile sorgulama yaparken use index te kullanıyorum. Aşağıdaki gibi kodlarla limit kullanmadan 10 saniye de sorgu tamamlanıyor.  Limit 100 kullanınca 0.02 salise de sorgu çalışıyor.  Limit 10 bile işimi görüyor aslında ama merak ettim Limitsiz bi kullanım yapmamız gerekirse 10 saniye gerçekten de çok çok uzun bi süre bunun daha pratik bir yolu var mıdır o tür durumlar için ?

    $sorgula = vtBaglanti()->prepare("select * from 1mtablo where durum= :d");
    $sorgula->execute(array("d"=>2));

    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    index'i de B-tree falan yaparsan daha hızlı olur Logn seviyesine çekersin aramaları diye öğrenmiştim hacı


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek

    * ile döndürmekten vazgeçip klon adlarını açıkça yaz. Eğer ihtiyacın olan veri sınırlıysa limit kullan vs.

    Muhammed, ikili arama sıralı verilerde uygulanır. 


    Olaylara karışmayın!
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek

    * konusunda haklısınız hocam çok farkediyor aramalarda. Ayrıca cevaplar için teşekkürler..


    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Nvidia
    Nvidia's avatar
    Banlanmış Üye
    Kayıt Tarihi: 13/Nisan/2013
    Erkek
    YeniHarman bunu yazdı

    * ile döndürmekten vazgeçip klon adlarını açıkça yaz. Eğer ihtiyacın olan veri sınırlıysa limit kullan vs.

    Muhammed, ikili arama sıralı verilerde uygulanır. 

    * kullanmaktan vazgeç derken ben oraya takıldım hocam ? Orayı bi açar mısın


    Milyarlarca yıl ölüydüm dirildim ve tekrar dirilmemek üzere öleceğim günü bekliyorum!
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    Tablodaki sütunların ad, soyad, dogum_tarihi, tc_no, vergi_no

    olduğunu varsayalım. Senin select sorgunda ad ve soyad sütunu sadece gerekli diyelim. Sen kalkıp da "Select ad, soyad from tablo" yerine "Select * from tablo" şeklinde kullanırsan performansı düşürmüş olursun.

    O yüzden lazım olan sütunları oraya yazman daha güzel olacaktır.


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek
    Nvidia bunu yazdı
    YeniHarman bunu yazdı

    * ile döndürmekten vazgeçip klon adlarını açıkça yaz. Eğer ihtiyacın olan veri sınırlıysa limit kullan vs.

    Muhammed, ikili arama sıralı verilerde uygulanır. 

    * kullanmaktan vazgeç derken ben oraya takıldım hocam ? Orayı bi açar mısın

    $QueryLogin=$db->prepare("SELECT * FROM kullanicilar WHERE 1=1 and IsActive=1 and Name=:kadi AND Password = :password");
    $QueryLogin->bindparam(':kadi',$kadi,PDO::PARAM_STR);
    $QueryLogin->bindparam(':password',$password,PDO::PARAM_INT);
    $QueryLogin -> execute();
    if($QueryLogin->rowCount())
        {
            foreach($QueryLogin as $RowLogin)
            {
             $UserId=$RowLogin["UserID"];
    print_r(json_encode(UserId));
            }
        }else
        {
            echo "error";
        }

    Buradaki kodda sana sadece USERID Gerekiyor.. Ama sen * ile alayını çekiyorsun... Fazladan veri çekiyorsun.. 100 Satır birşey çektiğinde ve tablonda 10 veri varsa 1000 Column çekmiş olursun.. Fakat;


    $QueryLogin=$db->prepare("SELECT id as UserID FROM kullanicilar WHERE 1=1 and IsActive=1 and Name=:kadi AND Password = :password");
    $QueryLogin->bindparam(':kadi',$kadi,PDO::PARAM_STR);
    $QueryLogin->bindparam(':password',$password,PDO::PARAM_INT);
    $QueryLogin -> execute();
    if($QueryLogin->rowCount())
        {
            foreach($QueryLogin as $RowLogin)
            {
             $UserId=$RowLogin["UserID"];
    print_r(json_encode(UserId));
            }
        }else
        {
            echo "error";
        }

    Böyle yazarsan sadece 100 satır çekmiş olursun :) Vs vs. ;) 1000 columdansa 100 daha iyi gereksiz satır çekmeye gerek yok anlayacağın :) * derken onu diyor sanırım...


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek

    Muhammed, limiti unutmuşsun: ) Senin sorgu hep tek satir döndürüyor gibi geldi bana.

    Sanirim yüksek performans gerektiği durumlarda bir vt sunucusu yerine birkaç tane senkron vt birlikte kullaniliyor. Bunun yaninda sik kullanilan veriler bellekte tutulmali gibi işler var. Hatta sql servirin böyle kendinden bir optimizasyonu vardi diye hatirliyorum.


    Olaylara karışmayın!
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    YeniHarman , Abi genelde tek dönüyor zaten tek dönmezse garanti Limit koyuyorum :D Onu unutursak olmaz zaten :D

    Nvidia , https://www.youtube.com/watch?v=KgiCxe-ZW8o&list=PL037D23F5CF5CB8B6

    Şunu izlemeni tavsiye ederim 


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Nvidia
    Nvidia's avatar
    Banlanmış Üye
    Kayıt Tarihi: 13/Nisan/2013
    Erkek

    Eyvallah hocalar .. 


    Milyarlarca yıl ölüydüm dirildim ve tekrar dirilmemek üzere öleceğim günü bekliyorum!
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    pala
    pala's avatar
    Kayıt Tarihi: 06/Temmuz/2016
    Erkek

    Notlar alınmıştır teşekkürler hocalar.

     

    pala tarafından 22/Oca/17 18:58 tarihinde düzenlenmiştir

    Bulunduğun yerden memnun değilsen yerini değiştir. Ağaç değilsin.
Toplam Hit: 1225 Toplam Mesaj: 11
mysql index