Veritabanı Mı Dosya Mı
-
Hoca şu mesajları okuyup bir fark yok diyorsan bence sen üslubunu düzelt :)
-
"Modlar silsin" diyor mürit.
Modlar silin
-
.
ozgunlu tarafından 06/May/15 13:25 tarihinde düzenlenmiştir -
Hacı paylaştığın link de bahsettiğim şeyi söylüyor. Sen "As a general rule, databases are slower than files." bunu okuyup linki paylaşmışsın ancak bu teorik bir cümledir, as a general rule. Burda bahsettiği dosyayı açıp okumak, ben istediğin datayı almak ile ilgili yazıyorum. ve şunları da okuman gerek:
Unless you're very clever, you can't write a cache as good as that of a DB server. Eğer sen bir dbms gibi cache ve indexing yapamazsan ki bundan bahsediyorum, okuma (istediğin datayı alma) hızın her zaman daha yavaş olacaktır. İlk mesajımda da söyledim, burda datanın tümünü okumak gibi düşünme, istediğin datayı okumak gibi düşün. işin içinde index ve query var yani. ok?
Do you need flexibility in order to easily query the data from a variety of angles?
Bak bu soruyu sorman lazım kendine. Yani şöyle düşün bir dosyada big data var ve sen buraya insert yapıyorsun. Şimdi sen data alacaksın ya da update edeceksin. Şu soruyu sor kendine, bu big data içinde, istediğim datayı nasıl alırım? istediğim datayı nasıl update ederim? Bu soruların cevabını dbms'siz verebiliyorsan yaz kodunu paylaş zaten o zaman temel bir dbms yazmış olacaksın iş yine dbms'e dönmüş olacak. mongodb mysql vs vs fark etmez. Sen sıfırdan dosyaya data kaydedip buna insert update istediğini fetch olaylarıyla bir dbms'ten çok daha fazla zaman harcarsın
alp tarafından 06/May/15 13:36 tarihinde düzenlenmiştir -
alp bunu yazdı
Hacı paylaştığın link de bahsettiğim şeyi söylüyor. Sen "As a general rule, databases are slower than files." bunu okuyup linki paylaşmışsın ancak bu teorik bir cümledir, as a general rule. Burda bahsettiği dosyayı açıp okumak, ben istediğin datayı almak ile ilgili yazıyorum. ve şunları da okuman gerek:
Unless you're very clever, you can't write a cache as good as that of a DB server. Eğer sen bir dbms gibi cache ve indexing yapamazsan ki bundan bahsediyorum, okuma (istediğin datayı alma) hızın her zaman daha yavaş olacaktır. İlk mesajımda da söyledim, burda datanın tümünü okumak gibi düşünme, istediğin datayı okumak gibi düşün. işin içinde index ve query var yani. ok?
Do you need flexibility in order to easily query the data from a variety of angles?
Bak bu soruyu sorman lazım kendine. Yani şöyle düşün bir dosyada big data var ve sen buraya insert yapıyorsun. Şimdi sen data alacaksın ya da update edeceksin. Şu soruyu sor kendine, bu big data içinde, istediğim datayı nasıl alırım? istediğim datayı nasıl update ederim? Bu soruların cevabını dbms'siz verebiliyorsan yaz kodunu paylaş zaten o zaman temel bir dbms yazmış olacaksın iş yine dbms'e dönmüş olacak. mongodb mysql vs vs fark etmez. Sen sıfırdan dosyaya data kaydedip buna insert update istediğini fetch olaylarıyla bir dbms'ten çok daha fazla zaman harcarsın
Son olarak sen kimsin seninle sidik yarıştıracam?
Bak ne demişim;
hocam çalıştığım yerde big datayla uğraşıcaz da bu soruyu bi yerde kullanmak için sormadım :)
Big Data olayı nerden çıktı anlamadım? Benim sorumda bulunmuyor. İkincisi ben .txt uzantısından da hiç bahsetmedim?
Dosyadan bahsediyorum, json olabilir, xml olabilir ya da php dosyası olabilir basitinden. Yani ben mesela çok dilli bir sistem hazırlıyorum diyelim. Burdaki değişkenleri dosyada tutmak ile veritabanında tutmak arasındaki erişim hızını kastettim diye farzet. Ya da imageları veritabanına blob türünde mi tutunca hızlı erişirim yoksa dosya da mı. Ben tutup da sana .txt dosyada "a" harfini arıcam diye bişey demedim ki? Erişim hızını merak ettim sordum, db için bir connection olayı oluyor, bu noktada file' a erişim arasındaki hız farkı nedir, biri bunla ilgili performans testi yapmışsa koymuşsa link alıyım diye sordum?
selamlar, uzatmıcam. yazma o yüzden cevap da yazmıcam. sen haklısın :)
ozgunlu tarafından 06/May/15 13:50 tarihinde düzenlenmiştir -
Hoca seninle sidik yarıştırma değil de ben query atacağın durumlardan bahsediyorum. siktirli konuşma .... senin, hesabımı banlatmak istemiyorum senin gibi biri için.
teknik bir şeyler yazmaya çalıştım, zaten language gibi bir şey için yani bir tane array, keyleri valueları var bunu tutacaksın bir yerde sonra kod içinde key'iyle ulaşacaksın falan. Bunun için bu soruyu sormaya bile gerek yok. static data bile olsa update insert bile olmasa,
data okumak demek bilgi çekmek demek, sen bütün datayı bir anda okuyacaksan zaten array olarak kaydeder sonra hepsini phpden vs okursun, ben sana istediğin datayı almaktan bahsediyorum, genel soruya genel cevap veriyorum
alp tarafından 06/May/15 13:48 tarihinde düzenlenmiştir -
alp bunu yazdı
Hoca seninle sidik yarıştırma değil de ben query atacağın durumlardan bahsediyorum. siktirli konuşma .... senin, hesabımı banlatmak istemiyorum senin gibi biri için.
teknik bir şeyler yazmaya çalıştım, zaten language gibi bir şey için yani bir tane array, keyleri valueları var bunu tutacaksın bir yerde sonra kod içinde key'iyle ulaşacaksın falan. Bunun için bu soruyu sormaya bile gerek yok. static data bile olsa update insert bile olmasa,
data okumak demek bilgi çekmek demek, sen bütün datayı bir anda okuyacaksan zaten array olarak kaydeder sonra hepsini phpden vs okursun, ben sana istediğin datayı almaktan bahsediyorum, genel soruya genel cevap veriyorum
anladım, kusura bakma. ama üslubun başta kötüydü. benim bahsetmediğim şeyleri anlatmışsın. o linki biri bişeyler öğrensin diye paylaştım. (mongo db) senin lafınla alakalı değildi. muhabbeti geçtiği için
ozgunlu tarafından 06/May/15 13:50 tarihinde düzenlenmiştir -
Session id yi db ile o dosyayı okutacağı alana sok (güvenlik açısından daha iyi ), veriyi dosyadan okut ( db den okutmaktan hızlı ). Boyut ve tahmini kullanıcı sayısına göre hareket etmek lazım. Bizde 80-90mb data dosyası olabiliyor sorguyu sunucuda bir lokasyona xls olarak çıkarıp çıkan dosyayı xls yapıp sıkıştırılmış sürümünü cliente gönderip client bilgisayarda program içinden yine bir lokasyona açtırıp ekranda okutmak çok daha avantajlı olabiliyor. Boyut ve kullanıcı sayısı belirler diyelim.
-
Kod içinde önceden oluşturulmuş key-value şeklined bir array varsa, sen dil altyapısı falan kuruyorsan
$arrary[$key] şeklinde hızlıca ulaşırsın, bunun için db'ye falan gerek yok da söylemek istediğim static de olsa big dataysa, böyle dil gibi basit bir yapı değilse işin içine farklı queryler girecek, yani her istediğine key ile ulaşamayacaksın, valuedan da filtrelemen gereken şeyler olacak bu durumda db daha hızlı olur diğer türlü kurduğun algoritma sana zaman kaybettirir.
Dilse yapmak istediğin hocam zaten genel olarak olay php vs içinde tutmaktır array'i sonra keyiyle ulaşmaktır. Zaten mesela tablo yapısına bakarsan sana bir matrix sunuyor idleri key olarak düşün fieldları value gibi düşün, bir matrixin oluyor, burdan istediğin datayı indexlenmiş bir yapı üzerinden dosyadan daha hızlı alırsın. sadece where id= gibi değil de value'u da sorgulamak gibi.
array'de value sorgusu yapmak için phpde jsde ne yapabilirsin
alp tarafından 06/May/15 14:05 tarihinde düzenlenmiştir -
Sen bütün farklı value'ları key olarak tutup $arr[][][][][][][][] => x şeklinde bir matrix oluşturursan da bu sefer her sorgu sana tek bir değer döndürmüş olur. Multi sorgular için döngü yapman gerekir yine parse'a döner iş. Static data olsa ne kadar static olabilir. İlla ki update insert delete olacak o zaman yine dbms'in avantajlarını ararsın