Bu işlemin 1 saniyede yapılması, sinin WHERE şartında belirttiğiniz alanların indexlenmesine bağlıdır.

Diğer taraftan, DURUM = ONLİNE gibi bir güncelleme yapıyorsanız ve DURUM alanına da index vermişseniz, update sırasında hem DURUM alanı hem de bu alanın INDEX'i güncelleneceği için işlem süresi 2 katına çıkar.

Özetleyecek olursak : Kayıtlara erişim ve update konusunda INDEX mevzusunu gözardı ederseniz süreler uzadığı için bekleme konusu gündeme gelir.

Selamlar...

Guychmyrat Amanmyradov yazmış:

Eğer güncellenemeya çalışılan değer değişmiyorsa SQL Updata işlemini zaten yapmaz. (effectedrow = 0 olur yani)

Yani 1. tabloda 1 mln kayıt var ve toplam 500 kişi online. 2. tablomda da 10.000 kişi var. ve burada da 500 kişi online. her iki tabloda da offline olucak kişi (effectedrow) 100 kişi ise. Her iki tabloda aynı sürede mi işlem olucak ? Yani her ikiside mesela 1 saniye de mi yapacak işlemi ? Çünkü etkilenecek row sayısı 100.



--- *15/10/09 Per tarihinde Nuri Akman /<nuri.ak...@hazine.gov.tr>/* şöyle yazıyor:


    Kimden: Nuri Akman <nuri.ak...@hazine.gov.tr>
    Konu: [Linux-programlama] Re: !!! Yan: Re: Online offline olayını
    nasıl tutuyorsunuz ?
    Kime: "Özgür yazılımlarla çeşitli dillerde yazılım geliştirme"
    <linux-programlama@liste.linux.org.tr>
    Tarihi: 15 Ekim 2009 Perşembe, 11:42

    Eğer güncellenemeya çalışılan değer değişmiyorsa SQL Updata
    işlemini zaten yapmaz. (effectedrow = 0 olur yani)




    Diğer bir çözüm: Sitede gezilen her sayfada kullanıcının SESSION
    değerini bir tabloya kaydeder, yanına da tıklama zamanını not
    alırsınız. Yani, "kullanıcılar" değil de "gezenler" gibi bir
    tabloda çalışabilirsiniz. Bunun faydası: Online kişi adedini
    izleyebilirsiniz. Dez avantajı: Kimler online göremezsiniz. Bunu
    da görmek isterseniz "gezenler" tablosuna kullanıcı adını da not
    etmeniz gerekir.

    Selamlar....

    Guychmyrat Amanmyradov yazmış:

    Her kişi girdiğinde bütün kayıtlarda dolaşma olmıycak mı sonuçta ?
    1 saniyede 100 kişi giriş yapıyor ise 1 saniyede 1 mln kayıt
    gereksiz yere taranmış olmayacak mı ?

    Ajax callerin asıl sebebi, 5 dk aynı sayfada hareket etmeden
    kalmışsa. Kopmamak için. Özellikle sistemde chat varsa bo çok
    önemli oluyor. Şöyle düşünün ben siteye girdim online oldum.
    birisi ile chat yapıyorum. Sayfamı değiştirmeden 5 dk kaldım. Bu
    durumda ben sitede olsam dahi offline olucam. Karşı taraf sanacak
    ki ben offline oldum. Halbuki ben sitedeyim. Sadece 5 dk boyunca
    hareket ettim. İşte bu problemi çözmek için ajax çalışsa o
    problemi çözer dedim.

    mln üyesi olan sitede günlük en fazla 50.000 kişi aktif
    olacakğını farz edersek, herkesi offline yapmak yerine (tüm
    kayıtlarda dolaşmak yerine) sadece ilgililerin değerini
    güncellemek daha iyi olur diye düşünüyorum. Aslında offline /
    online sütunu olmasa da olur. O olmadığını düşündüğümüzde saten
    ismini soyismini çekiyoruz onun yanında bir sütun çekip tarihine
    bakmak db-yi yormaz. Öyle değil mi ?

    --- *15/10/09 Per tarihinde Omer Barlas /<o...@barlas.com.tr>/*
    şöyle yazıyor:


        Kimden: Omer Barlas <o...@barlas.com.tr>
        Konu: [Linux-programlama] Re: Online offline olayını nasıl
        tutuyorsunuz ?
        Kime: "Özgür yazılımlarla çeşitli dillerde yazılım
        geliştirme" <linux-programlama@liste.linux.org.tr>
        Tarihi: 15 Ekim 2009 Perşembe, 10:29

        Guychmyrat Amanmyradov @ 15-10-2009 10:13:
        > Başka çözümü olan varmı ? Sizinde fikrinizi sorayım dedim.
        Belki daha
        > ogjinal çözüm vardır.

        kullanıcı tablosunda bir adet "son tıklama" kolonu bulunur,
        her tıklamada
        kullanıcının tıklama saati kolona eklenir.

        birisi login olduğunda da iki sql çalıştırılır;
        1. UPDATE kullanicilar SET Durum="OFFLINE" WHERE sonTiklama <
        TIME()-300;
        2. UPDATE kullanicilar SET Durum="ONLINE", sonTiklama=TIME()
        WHERE
        kullanicilar.Id = '....

        birincisi anlaşılacağı üzere kullanıcı DB'sinde son 5
        dakikadır hareket
        etmemiş tüm kullanıcıları offline eder, ikincisi ise
        kullanıcının son
        tıklama saatini günceller. böylece ne cron, ne ajax'a gerek
        kalmaz, her
        kullanıcı hareketinde herşey otomatikman gerçekleşir.

-- Omer Barlas
        o...@barlas.com.tr
        _______________________________________________
        Linux-programlama mailing list
        Linux-programlama@liste.linux.org.tr
        http://liste.linux.org.tr/mailman/listinfo/linux-programlama


    ------------------------------------------------------------------------
    Yahoo! Türkiye açıldı!
    Haber, Ekonomi, Videolar, Oyunlar hepsi Yahoo! Türkiye'de!
    www.yahoo.com.tr
    ------------------------------------------------------------------------

    _______________________________________________
    Linux-programlama mailing list
    Linux-programlama@liste.linux.org.tr
    http://liste.linux.org.tr/mailman/listinfo/linux-programlama

    -----Satır İçi Eki Var-----

    _______________________________________________
    Linux-programlama mailing list
    Linux-programlama@liste.linux.org.tr
    </mc/compose?to=linux-programl...@liste.linux.org.tr>
    http://liste.linux.org.tr/mailman/listinfo/linux-programlama


------------------------------------------------------------------------
Yahoo! Türkiye açıldı!
Haber, Ekonomi, Videolar, Oyunlar hepsi Yahoo! Türkiye'de!
www.yahoo.com.tr
------------------------------------------------------------------------

_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama

Cevap