Bilmek istediğin her şeye ulaş

MySql tablosu içerisinde json formatlı veri depolamak performans açısından yararlı mıdır?

Örneğin tablodaki bir kaydın kategorisi var ve bu kayıt birden fazla kategoriye ait olabilir. Bunu tek kategori alanı içinde virgüllerle ayırarak mı depolamalıyım? JSon formatında mı depolamlıyım? Yoksa ayrı bir tablo yaratıp burada ilişkileri mi tutmalıyım?Düzenle
Hem performans hemde yazılım kısmında size kolaylık sağlayacaktır ama bu nedenlerden ötürüde her yerde verileri json olarak depolamamak gerekir. Mesela bir üye tablonuz var. Tabloda sütun olarak kullanıcı adı, email, şifre ve üyeye ait bir kaç ekstra bilgi (kullanıcı rolü veya beşeri bilgileri) . Bu ekstra bilgileri farklı bir tabloya userid kullanarak da yazabilirsiniz.

Fakat bu dataya ulaşmak istediğinizde çok küçük bir bilgi için join sorgusu çalıştırırsınız. Küçük sistemlerde performans olarak pek önemli olmasa da, 1000 kişilik bir sistemde aynı anda sırf kullanıcı rolünü öğrenmek için 1000 ayrı join sorgusu çalışacaktır. Buda ağır bir yük demek. Halbuki üye tablosunda sadece bir sütunda bu bilgileri json olarak saklayıp, istek olduğunda tek bir select sorgusu ile data alabilir ve json decode yaparak dataya kolayca ulaşabilirsiniz.

Son olarak dediğim gibi yerine göre kullanırsanız gayet mantıklıdır.
  • Paylaş