MYSQL中JSON类型介绍 | 京东物流技术团队

💡 原文中文,约14200字,阅读约需34分钟。
📝

内容提要

MySQL 5.7.8开始支持JSON数据类型,提供了高效存储和操作JSON数据的方式。JSON列自动验证合法性并采用优化存储格式,支持插入、合并、查询、更新、比较和排序操作。虚拟列和索引可提高查询性能。适合存储静态拓展信息。

🎯

关键要点

  • MySQL 5.7.8开始支持JSON数据类型,提供高效存储和操作JSON数据的方式。

  • JSON列自动验证合法性,采用优化存储格式,支持多种操作。

  • MySQL将JSON字符串转为结构化二进制对象存储,包含type和value部分。

  • JSON对象的Key索引和Value索引均为排序好的,便于快速定位。

  • MySQL支持JSON数据的插入、合并、查询、更新和比较操作。

  • JSON数据插入时支持字符串格式和json_object()函数,自动验证文档合法性。

  • MySQL 5.7支持JSON_MERGE()合并算法,8.0.3及以上版本支持JSON_MERGE_PRESERVE()和JSON_MERGE_PATCH()。

  • JSON_EXTRACT()函数用于解析JSON对象,支持路径表达式访问数据。

  • JSON_SET()、JSON_INSERT()、JSON_REPLACE()和JSON_REMOVE()函数用于更新JSON数据。

  • JSON值可以使用多种操作符进行比较,支持不同类型的排序规则。

  • MySQL不支持直接对JSON列建立索引,但可以通过虚拟列实现索引功能。

  • JSON类型适合存储不常更新的静态数据,单个文档大小限制为4G,单个KEY最大64K。

➡️

继续阅读