MySQL 如何存储和查询 JSON 字段?
JSON 字段的底层实现
MySQL 中的 JSON 字段本质上是二进制字符串 (BLOB),以 UTF8MB4 编码存储。这种二进制存储方式允许快速检索,因为 MySQL 无需完全反序列化整个 JSON 文档。
查询优化
为了提高查询性能,MySQL 采用了类 JsonPath 的语法,使解析器能够仅反序列化所需的字段。这比传统 JSON 反序列化方法更快,因为它无需完全反序列化文档。
B+ 树中的存储
JSON 字段并没有真正“融合”到 B+ 树中。B+ 树中的键是 JSON 对象中的键,而值指向存储相应 JSON 文档的 BLOB。
MongoDB 的 BSON 存储
MongoDB 使用 BSON 格式存储数据,这是一种二进制形式的 JSON。虽然 BSON 与 JSON 兼容,但它本质上是一种 K/V 结构,索引基于文档中的字段键。