In MySQL 5.7 è stato aggiunto un nuovo tipo di dati per l'archiviazione dei dati JSON nelle tabelle MySQL . Ovviamente sarà un grande cambiamento in MySQL. Hanno elencato alcuni vantaggi
Convalida dei documenti : solo i documenti JSON validi possono essere archiviati in una colonna JSON, in modo da ottenere la convalida automatica dei dati.
Accesso efficiente : ancora più importante, quando si archivia un documento JSON in una colonna JSON, non viene archiviato come valore di testo normale. Viene invece archiviato in un formato binario ottimizzato che consente un accesso più rapido ai membri degli oggetti e agli elementi dell'array.
Prestazioni : migliora le prestazioni delle query creando indici sui valori all'interno delle colonne JSON. Ciò può essere ottenuto con "indici funzionali" su colonne virtuali.
Praticità : la sintassi inline aggiuntiva per le colonne JSON rende molto naturale integrare le query del documento all'interno del tuo SQL. Ad esempio (features.feature è una colonna JSON):
SELECT feature->"$.properties.STREET" AS property_street FROM features WHERE id = 121254;
WOW ! includono alcune fantastiche funzionalità. Ora è più facile manipolare i dati. Ora è possibile memorizzare dati più complessi in colonna. Quindi MySQL è ora aromatizzato con NoSQL.
Ora posso immaginare una query per i dati JSON qualcosa di simile
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 );
Quindi posso memorizzare piccole relazioni enormi in poche colonne json? È buono? Infrange la normalizzazione. Se questo è possibile, immagino che agirà come NoSQL in una colonna MySQL . Voglio davvero saperne di più su questa funzione. Pro e contro del tipo di dati JSON di MySQL.
Now it is possible to store more complex data in column
. Fai attenzione