büyük veritabanı nasıl işlenmeli json mu çevirmek gerekli?
başlıkta dediğim gibi benim veritabanım da tek bir tabloda 100 ün üzerinde sutun var
200 bin gibi de veri ekli database indirince 200 mb civarı
ben bu veritabanında sorgu ile işleşmeler kontrol yapmak zorundayım haliyle ağırlık oluyor
sizlere sormak istediğim bu sorguları mysql yarafında değilde veritabanını veri.json gibi yapıp bu json üzerinden işlem yapmak mı mantıklı yada naıl bir yol izlemem lazım acaba
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (3)
Benimde şu anda üzerinde çalıştığım projede büyük bir veritabanı var. Çok fazla tablo ve her tabloda en az 1000 satır veri var, veritabanı büyüklüğü 100 MB civarı. Bazı MySQL sorgularımın süresi 30 sn civarına çıkmıştı. Ancak şimdi en uzun sorgum 5-6 sn civarında.
Bu optimizasyon sonucunda ulaştığım kanaat; MySQL sorgusunu hazırlarken özellikle raporlama yaparken, sorgu girdilerine ne kadar PHP'yi bulaştırmazsam sorgu o kadar hızlı oluyor.
IF / ELSE bloklarımın tamamını sorgu üzerinde kurmaya çalıştım.
Dışarıdan Değer alan Prosedür'ler oluşturarak sorgu sürelerini şaşıracağın değerde düşerebilirsin.
Birde kendi yaptığım hatalar, Sorgu içerisinde alt sorgu veya iç içe sorgu kullanmak yerine bolca JOIN kullanmakta benim çok işime yaradı.
İnsanın başına gelince anlıyor, en azından benim için öyle oldu. İçine girdiğinde MySQL'in "SELECT * FROM" olmadığını anladım.
mysql da json kullanmak hepten veritabanına zarar verir, performansı bitirir. ben sadece okuduğum verileri json olarak dosyaya yazıyorum, daha sonra bunu veritabanına kaydediyorum. örneğin oturum açarken, o an gerçekleşen her tanımlama verisini cache diye bir klasörün altında bulunan oturum adında bir klasöre dosya olarak kaydediyorum, dosya adını da byte değeri uzun olmasın diye dosya sayısına göre belirliyorum. yani 200 dosya varsa, kaydettiğim dosyanın adı 201 oluyor ve veritabanına sadece 201 değerinde id ekliyorum. daha sonra sorgulamam gerekiyorsa sadece veri tabanından bu id değerini alıp dosyayı buluyorum.
Merhaba,
Veritabanına bıraksak daha iyi olmaz mı bu işleri? Velev ki kendiniz yönettiğinizi düşünelim bu veriyi. Herhangi bir veri değiştirdiğinizde ya da eklediğinizde dosya sistemine yazarken her seferinde 200'er MB'lar halinde yazacaksınız. Bir byte da değiştirseniz ve kaydetseniz 200 MB + 1 byte yazacaksınız. Sahiden çekilecek çile mi bu? Oturun bir daha düşünün derim =)