MySQL JSON 字段到底是如何运作的?

MySQL JSON 字段到底是如何运作的?

揭秘 mysql json 字段的运作机制

在 MySQL 中,JSON 字段的工作原理与预期有较大出入。

存储方式:二进制字符串

JSON 字段本质上是二进制字符串,而非文本字符串。这与 MySQL 中的 “BLOB” 类型类似,无需反序列化即可直接存储。

查询效率:部分反序列化

查询时,MySQL 仅反序列化所需的字段,而不是整个 JSON 字符串。这得益于类似 JsonPath 的语法和按键排序的存储方式,从而大大提高了查询效率。

融合与 B+ 树

JSON 字段并未与 B+ 树中的数据相融合。相反,它们作为独立的单元存储在树中。解析时,MySQL 使用索引查找相应的密钥,随后从二进制字符串中提取所需值。

mongodb 的 BSON

与 MySQL 不同,MongoDB 使用 BSON(二进制 JSON)而非 JSON。BSON 兼容 JSON,但格式不同,并以 K/V 方式存储在 WiredTiger 引擎中。

合理使用场景

正如一位社区成员所建议的,MySQL 的 JSON 字段对于解决新列添加问题时非常有用。它可以避免锁定表和停服,但前提是新列不涉及索引,并且仅在查询后用于显示数据。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容