MySQL是否使用bson进行json编码?或者它有自定义的二进制编码?例如:
优化的存储格式。存储在JSON列中的JSON文档被转换为允许对文档元素进行快速读取访问的内部格式。当服务器稍后必须读取以这种二进制格式存储的JSON值时,不需要从文本表示中解析该值。二进制格式的结构使服务器能够直接通过键或数组索引查找子对象或嵌套值,而无需读取文档中它们之前或之后的所有值。
https://dev.mysql.com/doc/refman/8.0/en/json.html
MySQL中JSON的内部编码并不是BSON。
https://elephantdolphin.blogspot.com/2019/01/mysql-shell-8014-now-with-bson.html说:
导入实用程序可以处理使用JSON扩展表示BSON数据类型的文档,将它们转换为相同或兼容的MySQL表示,并使用该表示导入数据值。
这篇博客文章的消息是,BSON需要转换为存储在MySQL中。
但在某些方面,MySQL的JSON的二进制编码与BSON有着相似的目标。
MySQL的JSON编码将一些数据类型转换为二进制表示,而不是字符串。此外,对象和数组中的每一个都包含一种";目录;以获取它们的键和值。
您可以在这里的源代码中阅读更多关于MySQL JSON编码的信息:
https://github.com/mysql/mysql-server/blob/8.0/sql/json_binary.h
尽管如此,您没有理由需要知道MySQL中二进制JSON扩展的编码,因为文本JSON在插入时会转换为二进制,在提取时会转换回文本。