No MySQL 5.7, um novo tipo de dados para armazenar dados JSON em tabelas MySQL foi adicionado. Obviamente, será uma grande mudança no MySQL. Eles listaram alguns benefícios
Validação de documento - apenas documentos JSON válidos podem ser armazenados em uma coluna JSON, para que você obtenha validação automática de seus dados.
Acesso eficiente - mais importante, quando você armazena um documento JSON em uma coluna JSON, ele não é armazenado como um valor de texto simples. Em vez disso, ele é armazenado em um formato binário otimizado que permite acesso mais rápido aos membros do objeto e elementos da matriz.
Desempenho - melhore o desempenho de sua consulta criando índices em valores nas colunas JSON. Isso pode ser alcançado com “índices funcionais” em colunas virtuais.
Conveniência - A sintaxe inline adicional para colunas JSON torna muito natural integrar consultas de documentos em seu SQL. Por exemplo (features.feature é uma coluna JSON):
SELECT feature->"$.properties.STREET" AS property_street FROM features WHERE id = 121254;
UAU ! eles incluem alguns recursos excelentes. Agora é mais fácil manipular dados. Agora é possível armazenar dados mais complexos na coluna. Portanto, o MySQL agora é temperado com NoSQL.
Agora posso imaginar uma consulta de dados JSON algo como
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 );
Então, posso armazenar pequenas relações enormes em poucos json colum? Isso é bom? Isso quebra a normalização. Se isso for possível, acho que funcionará como NoSQL em uma coluna MySQL . Eu realmente quero saber mais sobre esse recurso. Prós e contras do tipo de dados JSON do MySQL.
Now it is possible to store more complex data in column
. Tenha cuidado