MySQL 是否使用 bson 進行 json 編碼?或者它有自定義的二進制編碼嗎?例如:
優化的存盤格式。存盤在 JSON 列中的 JSON 檔案被轉換為允許對檔案元素進行快速讀取訪問的內部格式。當服務器稍后必須讀取以這種二進制格式存盤的 JSON 值時,不需要從文本表示中決議該值。二進制格式的結構使服務器能夠直接通過鍵或陣列索引查找子物件或嵌套值,而無需讀取檔案中它們之前或之后的所有值。
https://dev.mysql.com/doc/refman/8.0/en/json.html
uj5u.com熱心網友回復:
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 在插入時轉換為二進制,并在獲取時轉換回文本。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/373613.html
上一篇:輸出末尾的空行
下一篇:在運行時選擇C 模板
