插件窝 干货文章 mysql 能存储 json 吗

mysql 能存储 json 吗

JSON 数据 存储 attributes 393    来源:    2025-03-28

MySQL 中的 JSON 数据类型支持

是的,MySQL 从 5.7.8 版本开始原生支持 JSON 数据类型,提供了高效的 JSON 数据存储和查询功能。

JSON 数据类型特性

  1. 存储格式:MySQL 以优化的二进制格式存储 JSON 文档,而不是简单存储为文本
  2. 验证机制:自动验证存储的 JSON 文档是否格式正确
  3. 高效访问:提供专门的函数和操作符来高效访问 JSON 数据

基本用法

创建包含 JSON 列的表

CREATE TABLE products (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    attributes JSON,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

插入 JSON 数据

INSERT INTO products (name, attributes) 
VALUES ('Laptop', '{"color": "silver", "memory": "16GB", "storage": "512GB SSD"}');

查询 JSON 数据

-- 提取特定属性
SELECT name, attributes->"$.color" AS color FROM products;

-- 使用 JSON 路径表达式
SELECT JSON_EXTRACT(attributes, '$.memory') AS memory FROM products;

常用 JSON 函数

  1. JSON_EXTRACT() / ->:提取 JSON 值
  2. JSON_SET():修改或添加值
  3. JSON_REMOVE():删除值
  4. JSON_CONTAINS():检查是否包含特定值
  5. JSON_SEARCH():查找值在 JSON 中的路径

注意事项

  1. 版本要求:MySQL 5.7.8 或更高版本
  2. 存储大小:最大支持约 1GB 的 JSON 文档
  3. 索引:可以对 JSON 列中的特定路径创建虚拟列并添加索引以提高查询性能
  4. 性能:对于复杂的 JSON 操作,可能不如专门的文档数据库高效

MySQL 的 JSON 支持使得在关系型数据库中存储和查询半结构化数据变得更加方便。