Veri Saklama veya saklanan veriyi en hızlı yayınlama?
bu konuda biraz kafam karışık arkadaşlar.
mysql de veriler tek sütünda json olarak saklamakmı yoksa
10 sütün lü bir tabloda her sütüne ayrı olarak saklamakmı
döküm tarafından hız farklı sağlar.
yada yukardaki her 2 olaydada
site tarafında json_encode decode işlemleri ile mi
verilerin sayfaya daha çabuk yüklenmesini sağlar.
burda sunucuveya hosting faktörüde esas alınmalıdır muhtemelen
ama
backend tarafında hangisi daha performanslı olur.
bi sunucuda datatables ile 100 veriyi 1.21 sn de dökerken
aynı kodlara sahip başka sunucu 0,25 sn de dökebiliyor.
çoklu sütün json çıktı ile.
bunu o yavaş sunucuda daha hızlı hale nasıl getirebiliriz.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (4)
cache kullanarak sürekli sql sorgusu sormasını engellersen hem şişme yapmayacaktır hemde daha hızlı yüklenecektir.
index oluşturmanın yararları da faydalarını arasında kalmamakta icap eder
günümüz veri yöneticileri genellikle hep okuma ağırlıklıdır yazma tarafıda iyidir fakat yazma tarafı biraz daha yavaş olabiliyor.
10 sütünlü bir tabloda zaten id nin bir primary_key olduğunu var sayarsak ki oda bir index dir oluşturacağın
5 ve sonrası indexler bu sefer insert create işlemlerini yavaşlatacak veritabanında daha çok alan işgal edicek vb dezavantajları da vardır tabi.
çok nadiren kullanıyordum index olayını genellikle arama alanlarında aracak sütün adlarına atama yapardım tablolardki
bir çok tabloyu birleştirip gruplayıp o tablolardan daha hızlı sonuç almak için.
tayfunun bahsettiği index belirlemesi okadar ama okadar önemli ki bunu zmanla anlayacaksınız
örnek urun tablosu ile kategori tabloları ilişkili ise urun_id veya kategori_id index leyince inanılmaz hızlanıyor sıstem
verıler coğalınca yavaslama goreceksın sonra index yap farkı gör
burada önemli olan veritabanı mimarin.
mysql ilişkisel bir veritabanı olduğu için en doğru yaklaşım verileri birden fazla tabloya dökmektir.
Yani bir tabloda 10 sütunun olmasından sa 3 tabloya bölerek bunlar arasındaki ilişkiyi kurarak verileri göstermen daha performanslı olur.
elbette performans işin içine girince mysql'de sorgularda bilinmesi ve kullanılması gereken bir sürü küçük-büyük detay var. Bunların en basiti index'lerin belirlenmesi gibi.
yani sadece bu konularla ilgili mysql derslerine bakarsan internetten anlamanı daha kolaylaştıracaktır