MySQL JSON поля
З MySQL 5.7 з'явився нативний тип даних JSON з валідацією та оптимізованим зберіганням. Зручний для конфігурацій, метаданих та напівструктурованих даних.
Запити до JSON
-- Оператор -> (повертає JSON)
SELECT meta->'$.age' AS age FROM users;
-- Оператор ->> (повертає текст)
SELECT meta->>'$.address.city' AS city FROM users;
-- Фільтрація
SELECT * FROM users WHERE meta->>'$.address.city' = 'Kyiv';Індексація JSON
-- Використовуйте згенерований стовпець:
ALTER TABLE users
ADD COLUMN city VARCHAR(100)
GENERATED ALWAYS AS (meta->>'$.address.city') STORED;
CREATE INDEX idx_city ON users(city);Не зловживайте JSON: Якщо поле часто використовується у WHERE або JOIN — виведіть його в звичайний стовпець з індексом.