MySQL 5.7'de JSON verilerini MySQL tablolarında depolamak için yeni bir veri türü eklenmiştir. Açıkçası MySQL'de büyük bir değişiklik olacak. Bazı faydaları listelediler
Belge Doğrulama - Yalnızca geçerli JSON belgeleri bir JSON sütununda saklanabilir, böylece verilerinizin otomatik olarak doğrulanmasını sağlarsınız.
Verimli Erişim - Daha da önemlisi, bir JSON belgesini bir JSON sütununda sakladığınızda, düz metin değeri olarak depolanmaz. Bunun yerine, nesne üyelerine ve dizi öğelerine daha hızlı erişim sağlayan optimize edilmiş bir ikili biçimde depolanır.
Performans - JSON sütunlarındaki değerler üzerinde dizinler oluşturarak sorgu performansınızı artırın. Bu, sanal sütunlardaki "işlevsel indeksler" ile elde edilebilir.
Kolaylık - JSON sütunları için ek satır içi sözdizimi, Belge sorgularını SQL'inize entegre etmeyi çok doğal hale getirir. Örneğin (features.feature bir JSON sütunudur):
SELECT feature->"$.properties.STREET" AS property_street FROM features WHERE id = 121254;
VAOV ! bazı harika özellikler içerirler. Artık verileri işlemek daha kolay. Artık daha karmaşık verileri sütunda saklamak mümkün. Yani MySQL artık NoSQL ile tatlandırılmıştır.
Şimdi JSON verileri için bir sorgu hayal edebiliyorum.
SELECT * FROM t1
WHERE JSON_EXTRACT(data,"$.series") IN
(
SELECT JSON_EXTRACT(data,"$.inverted")
FROM t1 | {"series": 3, "inverted": 8}
WHERE JSON_EXTRACT(data,"$.inverted")<4 );
Yani birkaç json colum'da büyük küçük ilişkileri depolayabilir miyim? İyi mi? Normalleşmeyi bozuyor mu? Bu mümkünse, sanırım bir MySQL sütunundaki NoSQL gibi davranacaktır . Bu özellik hakkında gerçekten daha fazla bilgi edinmek istiyorum. MySQL JSON veri türünün artıları ve eksileri.
Now it is possible to store more complex data in column
. Dikkatli olun