欢迎来到程序员中文网!

首页 Linux Mysql C++ Python PHP JavaScript 资源下载 动态 开源推荐
我要投稿 投诉建议

MySQL JSON 数据类型实战:文档存储与查询优化

时间:2026年08月12日 05:32:21 浏览:1

MySQL JSON 数据类型实战:文档存储与查询优化


MySQL 5.7+ 支持原生 JSON,可存储半结构化数据并高效查询。


1. 创建表与插入数据


CREATE TABLE user_ext (
id INT PRIMARY KEY,
info JSON
);

INSERT INTO user_ext VALUES (1, '{"name": "张三", "age": 30, "tags": ["vip", "developer"]}');

2. 查询 JSON 字段


-- 提取值
SELECT id, info->'$.name' AS name, info->'$.age' AS age FROM user_ext;

-- 条件查询(使用虚拟列或函数索引)
SELECT * FROM user_ext WHERE JSON_EXTRACT(info, '$.age') > 25;

3. 索引优化(MySQL 8.0 函数索引)


CREATE INDEX idx_age ON user_ext ((CAST(info->'$.age' AS UNSIGNED)));

4. 更新 JSON


-- 新增/修改字段
UPDATE user_ext SET info = JSON_SET(info, '$.city', '北京') WHERE id = 1;

-- 删除字段
UPDATE user_ext SET info = JSON_REMOVE(info, '$.age') WHERE id = 1;

-- 数组操作
UPDATE user_ext SET info = JSON_ARRAY_APPEND(info, '$.tags', 'leader') WHERE id = 1;

JSON 类型灵活应用,适合存储配置、用户属性等非固定结构数据。