none
MongoDB Tavsiye İsteği RRS feed

  • Soru

  • MongoDB hakkında bilgisi olanlardan özellikle cevap istiyorum :)

    Sizce MongoDB'yi sadece arama sayfamda kullansam nasıl bir performans elde etmiş olurum? Projemde komple MongoDB kullanmak yerine sadece arama kısmında kullanmam sizce mantıklı olur mu? Yada daha yolun başındasın sen, bütün projeni MongoDB yap mı dersiniz ? Yada sadece arama için kullanacaksan Lucene mi bak dersiniz :)

    Veri tabanı konusunda ciddi endişelerim bulunmakta :) Milyonlarca satır kayıt olacak ve bu kayıtlarda hızlı bir şekilde işlem yapmam gerekecek. Sadece dakikalar içerisinde Milyonlarca kayıt silinip, milyonlarca kayıt eklenecek. Bu bahsettiğim olay, her dakika veya her gün olmayacak. Hafta'da bir kez veya ayda bir kez olacak; Bu kayıtların yer aldığı bütün tablolarda, bütün kolonlarda arama yapılacak ve arama sayfasında sonuçları gösterirken: bütün tabloları INNER JOIN le birleştirip göstermem lazım. 

    İste yukarıdaki sebepler yüzden veri tabanı konusunda çok ciddi endişelerim bulunmakta çünkü daha doğru düzgün stored procedure yazmayı bilmiyorum. :) 


    Just a .net developer.

    28 Eylül 2012 Cuma 15:44

Yanıtlar

  • Aslın bu sitelerin NoSQL kullanmalarının en büyük sebeplerinden birisi de büyük veriler (resim, video, müzik gibi.) saklamaları:)

    Eğer ilişkisel veritabanını iyi tasarladıysan stored procedure (başlangıç olarak buradan bakabilirsin) larını yazıp gerekli clustered ve non-clustered index lemeleri de yaparsan sorun olmayacaktır. Indexleme hakkında da buradan faydalanabilirsin.

    • Yanıt Olarak İşaretleyen Halit ÇOLAK 29 Eylül 2012 Cumartesi 14:00
    29 Eylül 2012 Cumartesi 08:21
  • Zaten önemli olan sorunuzda da dediğiniz gibi, yazılım tasarımını iyi yapmak, neyi nerde, nasıl ve hangi durumlarda kullanmak gerektiğini iyi bilmektir. Emin ol NoSQL'i çok kısa sürede öğrenirsin :) Kolay gelsin.
    • Yanıt Olarak İşaretleyen Halit ÇOLAK 29 Eylül 2012 Cumartesi 15:22
    29 Eylül 2012 Cumartesi 14:46

Tüm Yanıtlar

  • NoSQL olarak MongoDB değil de RavenDB kullanmıştım daha önceden. Bence verileriniz arasında ilişki varsa NoSQL yerine ilişkisel veritabanı kullanın derim. Aslında endişe etmenize de gerek yok performans açısından.

    Eğer siz veritabanınızı iyi tasarlarsınız (ilişkisel olarak), clustered ve non-clustered index tanımlamalarınız düzgün bir şekilde yaparsanız ve stored procedure kullanırsanız performans olarak çok fark göreceksiniz. Milyonlarca kayıt arasından saniyeler içerisinde  veri çekebileceğinize emin olabilirsiniz. Bizzat bir bankanın veritabanında buna şahit oldum.

    Ama yeni bir şey öğreneyim, kullanmak istiyorum derseniz sorunuza en güzel cevap burada bence.

    Kolay gelsin.

    28 Eylül 2012 Cuma 17:21
  • Veri tabanımı iyi tanımladığımı sanıyorum. İlişkisel olarak da hani bence mükemmel oldu, tabi ki daha iyi olur veya olamaz onu bilemeyeceğim, ama bence mükemmel oldu. Dediğim gibi SQL konusunda profesyonel değilim. Amacım yeni bir şey öğreneyim değil aslında atraksiyona gerek yok :) çünkü dediğim gibi veritabanı patlayacak diye korkumdan yazamıyorum bile :). Eğer dediğiniz gibi düzgün bir biçimde ilişki kurup sağlam cümleler yazdığımda saniyeler içerisinde veri çekeceksem hiç bulaşmayım bu işe :). Sonuçta SQL bu zamana kadar ailecek beğenerek kullandığımız bir veri tabanı :). 

    NoSQL kullanmayı düşünme sebebim; bütün büyük web siteleri (Google, Facebook, Twitter ve aklıma gelmeyenler) NoSQL veri tabanı kullanıyor. Yani bu veri tabanı MsSQL veya MySQL'den hızlı olmasa bu adamlar bunu kullanmaz diye düşünüyorum. En basitinden Google'ı ele alacak olursak ciddi anlamda sağlam bir veritabanı olmasa o kadar veriyi mili saniyeler içerisinde çekemezler her halde.


    Just a .net developer.


    29 Eylül 2012 Cumartesi 06:24
  • Aslın bu sitelerin NoSQL kullanmalarının en büyük sebeplerinden birisi de büyük veriler (resim, video, müzik gibi.) saklamaları:)

    Eğer ilişkisel veritabanını iyi tasarladıysan stored procedure (başlangıç olarak buradan bakabilirsin) larını yazıp gerekli clustered ve non-clustered index lemeleri de yaparsan sorun olmayacaktır. Indexleme hakkında da buradan faydalanabilirsin.

    • Yanıt Olarak İşaretleyen Halit ÇOLAK 29 Eylül 2012 Cumartesi 14:00
    29 Eylül 2012 Cumartesi 08:21
  • Daha önce hiç SQL indexleme yapamamıştım. Eğer verdiğiniz makaledeki gibi bir kazanç elde edersem süper olur :) Yardımlarınız için teşekkür ederim. Eğer ileride resim, video veya müzik verileri saklamak istersem noSql kullanacağım :) Teşekkür ederim.


    Just a .net developer.

    29 Eylül 2012 Cumartesi 13:59
  • Zaten önemli olan sorunuzda da dediğiniz gibi, yazılım tasarımını iyi yapmak, neyi nerde, nasıl ve hangi durumlarda kullanmak gerektiğini iyi bilmektir. Emin ol NoSQL'i çok kısa sürede öğrenirsin :) Kolay gelsin.
    • Yanıt Olarak İşaretleyen Halit ÇOLAK 29 Eylül 2012 Cumartesi 15:22
    29 Eylül 2012 Cumartesi 14:46