Veritabanı Mı Dosya Mı
-
hoca tabii ki veritabanında tutmak daha avantajlı. Big data diyorsun.
Bunu sadece datayı kaydetmek ve tümünü okumak olarak düşünme. Gün gelecek o dataya query atman gerekecek.
Tüm datayı al içinden ayıkla diye bir şey yaparsan kat kat yavaşlar okuma hızın. Günümüz db'lerinden bir şey kullanırsan, şu datayı istiyorum dersen o datayı alırsın. db arka plandaki işleri senin için optimize eder en hızlı şekilde getirir. Sen sadece query'ini daha hızlı çalışacak şekilde ayarlarsın o kadar
-
ozgunlu bunu yazdıunbalanced bunu yazdı
hocam xml de farkettiğin üzerine metin tabanlı tutuluyor ve direk okuma yapabiliyorsun ama ilişkisel veritabanlarında iş öyle değil, bir sürü faktör var, verilerin kaydediliş şekilleri, keyler (fk,pk v.s.) ... bunlar gibi faktörler hızı belirler.
Ama bu hız muhtemelen senin projelerinde pek gözle görülür bir şey olmayacak. Çünkü kaydedeceğin dataların boyutları çok fazla büyük değildir diye düşünüyorum, büyük bir firma olsan zaten çözüm arayışlarına girersin ama küçük ve orta düzeyler için dbms ler yeterlidir. Ama bunu xml ile de yapabilirsin. Dediğim gibi çok fazla farkı olmayacak senin için... küçük datalarda bu hız farkları ms civarındadır.
verilerinde her hangi bir yapı yoksa direk metin dosyasında tutabilirsin,
yapıların varsa o zaman xml de tutabilirsin,
yapıların var ve aynı zamanda kompleks sorgular yapacaksan dbms kullanabilirsin
hocam çalıştığım yerde big datayla uğraşıcaz da bu soruyu bi yerde kullanmak için sormadım :) sadece merakımdan, aklıma geldi durduk yere. Eve geçince bir hız testi yapıp paylaşırım burda. Bakalım neler çıkcak ortaya. Ama bu farka etki eden faktörler ilgilendiriyordu beni. Yani db' ye bağlanmak ile bir dosyayı açma arasındaki fark vs. neyse bi bakayım ben, çıkarsa bişiler yazarım :)
oo big data hangi firma ne için kullanıcaksınız big datayı :) bizide firmada big data ile uğraşıyoruz tabi daha çok iş zekası üzerine :)
-
-
conf. vb static datalar genelde dizi olarak tutulur.
a.php
return [ 'yas' => '13', 'cinsiyet => 'Erkek' ];
b.php
$eleman = require('a.php'); echo $eleman['yas'];
Hybris tarafından 04/May/15 23:07 tarihinde düzenlenmiştir -
Bence en temizi Database.
Her şeyin bir yerde durması daha iyi.
Ama unbalanced in dediği gibi xml de en hızlısı metin okuyorsun sonuçta. :)
-
Tercih meselesi, Dosya sistemi de bir veritabanıdır hocam.
Statik datadan kastın ne? resim falan dolduracaksan öle 100.000 leri bulmayacaksa dosya sistemi iyi bir seçenek.
-
Veri tabanı dediğin şey de arkada dosya tutuyor sonuçta :)
İhtiyaca bağlı bir durum. Yani indexleme, sıralama,listeleme vb ihtiyaçların yoksa dosya daha ideal. Ama bu tarz şeyler gerekince veritabanı sistemleri farkedilir oranda hızlı olacaktır.
Bu arada big data muhabbeti dönmüş baya görünce ekleyeyim dedim.
Big Data is like teenage sex:
everyone talks about it,
nobody really knows how to do it,
everyone thinks everyone else is doing it,
so everyone claims they are doing it.
-
Teşekkür ederim herkese, sanırım pek bir fark oluşturmuyorlar :)
dediğim gibi sadece meraktan sordum, durduk yere geldi aklıma.
Bu arada NoSQL yapıları anlatan çok hoş bir makale var;
https://www.linkedin.com/pulse/mongodb-ile-%C3%A7al%C4%B1%C5%9Fmak-binnur-kurt
-
Hoca nasıl bir fark oluşturmuyorlar?
Sen big data dediğin verileri kaydet bir txt dosyasına, ben de herhangi bir dbms'e kaydedeyim.
Sonra müritler desin ki, şu dataları getirin. Bakalım kimin kodu daha hızlı getiriyor dataları. Sen o txt dosyasından data çekmek için gerekli kodu yazamazsın bile. Yazsan da ben max. 2 satırla istenen her datayı en hızlı şekilde getirirken sen loop'ların içinde kaybolur; saniyeler, belki dakikalar harcarsın.
Sen txt'den, dbms'ten daha hızlı data okuyacağını iddia et ben senin alnını karışlarım.
Zaten paylaştığın link de mongodb linki, o da bir dbms. Ben query deyince sen nosql paylaşmışsın ancak mongodb'ye gönderdiklerin de query oluyor. sql değil ancak sonuçta şunu diyorsun "Şunu getir, şunu filtrele"
dbms'lerde genel fetch mantığı indexler üzerine kuruludur. Onlar datayı şu an bilinen ve usable en iyi yöntemlerle indexler, fetch ederken bu algoritmayı kullanıp işlemleri hızlandırır. dbms datayı btree'de tutar mesela bu da bir kayıt ararken search hızını kat kat hızlandırır.
btree'ye göre indexlenmişse data örnek olarak, 128 kayıt varsa istenen bir kayıt max. 2^n => 7 iteration'da gelir. Diğer türlü 128 kayıt test edilmesi lazım ki bu diğerine göre çok daha fazla zaman alır
alp tarafından 06/May/15 13:16 tarihinde düzenlenmiştir -
edit.
ozgunlu tarafından 06/May/15 13:19 tarihinde düzenlenmiştir