• 27-12-2014, 11:39:05
    #1
    merhabalar , iki gündür kafamda kurcalıyorum bu sorunu . çok büyük kayıtlar bulunan tablolardan hızlı olarak veri nasıl çekilir.

    Örnek olarak : elimde 500.000 kayıt bulunan bir tablo var ve ben bu tablodan id'si 345.674 olan kaydı çekmek istiyorum . haliyle epey zaman alacak. bu konudan ne gibi iyileştirmeler yapılabilir. ?

    Facebook çok çok daha büyük tablolardan acayip hızlı bir şekilde kayıt oluyor ve mysql ile yapıyor bunu , nasıl bir sistemleri var ?

    benim aklıma ilk olarak ilişki yapılarının çok sıkı kurulması geldi.

    başka ne yapılabilir ? (cache gibi durumlardan bahsetmiyorum .db tarafını soruyorum.)

    teşekkürler.
  • 27-12-2014, 11:41:09
    #2
    Üyeliği durduruldu
    ID kısmı indexliyse (ki büyük ihtimal öyledir) dediğiniz sorgu pek zaman almaz. Denediniz mi ?
  • 27-12-2014, 11:43:53
    #3
    yani dediğim gibi primary key ve foreign keyler epey bir yardımcı olur , fakat yine de yeterli değil.
  • 27-12-2014, 12:29:35
    #4
    500.000 satırlık bir veri hiçte çok bir veri değil aslına bakarsanız.

    Veritabanı ayarlamalarını güzel yaptığınız sürece milisaniyelere bile ulaşmadan çekebilirsiniz tekil veriyi.

    Bunla ilgili internette dökümanlar var.

    Bknz : Mysql optimizasyon
  • 27-12-2014, 14:00:01
    #5
    500.000 kayıt çok olmayabilir . buna takılmayın . çok olan bir tablo düşünün. facebook
    üstünden ilerleyim . onlar nasıl beceriyorlar bu işi.

    döküman tavsiyeniz için teşekkürler. inceliyorum ..
  • 27-12-2014, 14:49:47
    #6
    Facebook ilişkisel veritabanı kullanmıyor. NoSql sistem olan Apache Cassandra kullanıyor, o yüzden bu kadar hızlı.
  • 27-12-2014, 15:43:05
    #7
    facebook, twitter, google vb büyük sistemler kabuscobar arkadaşın dediği gibi nosql çözümler kullanıyor. MySql kullandığını nereden çıkardınız bununla hareketiniz zaten başlangıçta çöküyor. bu sistemlerin tek bir veritabanı yönetim sistemi yoktur, atıyorum X kısmını A çözümünde tutuyorsa, y kısmını B çözümünde tutuyordur. Yani birden fazla ilişkisel ve ilişkisel olmayan veritabanı çözümü kullanıyorlardır.

    Hız istiyorsan ve ilişkisel bir veritabanına ihtiyacın yoksa ve de join vari işlemler yapmıyorsan uygun bir nosql çözümü kullanabilirsin.

    https://www.r10.net/1069830383-post14.html

    burada kısaca nosql çözümlerinin detaylarından bahsettim. Ona uygun bir çözüm seçilebilir

    kolay gelsin
  • 27-12-2014, 20:23:15
    #8
    facebook vs gibi sosyal sitelerde "big data" denilen sistemler kullanılıyor benim bildiğim. arkadaşın dediği gibi 500.000 çok büyük bi veri değil bunların yanında. bu konuyu araştırabilirsin ama sitemine entegre edebilir misin tam bilmiyorum. ama index ler senin işini görür gibime geliyor
  • 28-12-2014, 01:22:58
    #9
    @ertan2002 facebook'un timeline yapısı mysql üzerinde çalışıyor.
    @devveloper , @ertan teşekkürler.