• 03-02-2007, 19:37:44
    #1
    Üyeliği durduruldu
    Aklıma birşey takıldı. Şimdi veritabanından 95 satır veri alıcam, rasgele olacak bunlar. Tabloda 6 milyon satır var. Hangi SQL'i kullanmam daha az zorlar serverı ve daha hızlı sonuç alabilirim yoksa ikiside aynı mı olur?
    Şimdi ilk sql olarak alttakini düşündüm.
    SELECT * FROM `tablo` ORDER BY rand() LIMIT 0, 95
    İkinci olarak ise random bir sayı alarak
    SELECT * FROM `tablo` LIMIT 6984, 95
    Böyle bir limit kullandım.
    Şimdi hangisi daha verimli çalışır ikinci sqlde random bir sayı alabilmek için php
    uygulamasıda kullanacığımı göz önünde tutarsak sizce hangisi ?
  • 03-02-2007, 19:40:01
    #2
    Misafir
    order by rand yaparsan (ki ben yaptım 1.200.000 satırlı bir db de) intihar olur.
    elle rand le.
  • 03-02-2007, 19:45:53
    #3
    Üyeliği durduruldu
    Şu anda order by rand() yaptım ve serverload normalden yüksek acaba
    bu script mi zorluyor diye merak etmiştim. ozaman elle rand yapayım...
    Başka yorumu olan varsa eklesin...
    !
    Evet hemen denedim ve gördüm ki arada bayabir fark var hız konusunda
    büyük veri tabanlarında order by rand() kullanmayacakmışız demek.
  • 03-02-2007, 19:55:30
    #4
    Misafir
    1.400.000 kayıtlı db

    sorgu
    SELECT sonuc_sayisi,kelime,zaman FROM arama_log ORDER BY RAND() limit 0,50

    Satırlar gösteriliyor 0 - 49 (50 toplam, Sorgu 6.1599 san sürdü)

    _____________

    SQL sorgusu: SELECT sonuc_sayisi, kelime, zaman FROM arama_log LIMIT 150 , 50


    Satırlar gösteriliyor 0 - 49 (50 toplam, Sorgu 0.0057 san sürdü)
  • 04-02-2007, 01:38:53
    #5
    Üyeliği durduruldu
    Bu arada benim 6 milyonluk tablomda arama ile ilgiliydi
    bakıyorumda seninkiside arama logları