W MySQL 5.7 dodano nowy typ danych do przechowywania danych JSON w tabelach MySQL . Będzie to oczywiście wielka zmiana w MySQL. Wymienili kilka korzyści
Walidacja dokumentów - w kolumnie JSON można przechowywać tylko prawidłowe dokumenty JSON, dzięki czemu uzyskujesz automatyczną weryfikację danych.
Wydajny dostęp - co ważniejsze, gdy przechowujesz dokument JSON w kolumnie JSON, nie jest on przechowywany jako zwykła wartość tekstowa. Zamiast tego jest przechowywany w zoptymalizowanym formacie binarnym, który umożliwia szybszy dostęp do składowych obiektów i elementów tablicy.
Wydajność - popraw wydajność zapytań, tworząc indeksy wartości w kolumnach JSON. Można to osiągnąć za pomocą „indeksów funkcjonalnych” w wirtualnych kolumnach.
Wygoda - dodatkowa składnia wbudowana w kolumny JSON sprawia, że integracja zapytań dokumentów w SQL jest bardzo naturalna. Na przykład (features.feature to kolumna JSON):
SELECT feature->"$.properties.STREET" AS property_street FROM features WHERE id = 121254;
ŁAŁ ! zawierają świetne funkcje. Teraz łatwiej jest manipulować danymi. Teraz możliwe jest przechowywanie bardziej złożonych danych w kolumnie. Więc MySQL jest teraz wzbogacony o NoSQL.
Teraz mogę sobie wyobrazić zapytanie o dane JSON w stylu
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 );
Czy mogę więc przechowywać ogromne, małe relacje w kilku kolumnach json? Czy to jest dobre? Czy to łamie normalizację. Jeśli jest to możliwe, myślę, że będzie działać jak NoSQL w kolumnie MySQL . Naprawdę chcę dowiedzieć się więcej o tej funkcji. Plusy i minusy typu danych MySQL JSON.
Now it is possible to store more complex data in column
. Uważaj