发布json数据_技术分享 | MySQL 8.0.17 GA 发布!
昨日 MySQL 官網正式發布 8.0.17 / 5.7.27 / 5.6.45 三個(維護)版本,距離上一個 GA 版本(8.0.16)發布時隔僅 88 天!
MySQL 各開發團隊的博客網站,同一時間發布了多篇文章報道新版本發布(后續翻譯)。三個版本除了修復 Bug 外,兩個 5.* 版本則優化了 Windows 的告警功能,8.0.17 添加了一些新功能,標記并不推薦某些功能。
具體請查看 MySQL 官網的 Release Notes 頁面,下文為 MySQL 8.0.17 版本的新特性梗概。
MySQL 官網的 Release Notes 頁面:
http://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-17.html http://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-27.html http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-45.html
圖片自 MySQL 官網截圖
一、克隆
在 8.0.16 新增的 MySQL Shell (本次也有更新),可將一臺運行中的服務器,克隆出一臺新服務器。本過程可自動化實現,但需要預先使用 mysqldump 或 backup 等部署初始狀態。例如,需要為 MySQL InnoDB Cluster 添加新成員,只需啟動一臺新的服務器,并操作 MySQL Shell 告知加入指定集群即可。
主要包括:克隆本地副本 [WL #9209] /克隆遠程副本 [WL #9210] /克隆遠程配置 [WL #11636] /克隆復制坐標 [WL #9211] /克隆加密 [WL #9682]
二、JSON 的多值索引
InnoDB 現在支持 JSON 數組上的多值索引。多值索引是多個索引記錄可以指向同一數據記錄的索引,這對于索引 JSON 文檔非常有用。例如:{user:"Bob",zipcode:[94477,94536]}
如果我們想在上面的 JSON 數據中搜索 zipcodes,可以使用如下語句創建索引:
CREATE INDEX zips ON t1((CAST(data->'$.zipcode' AS UNSIGNED ARRAY)));
這是一種函數索引,使用 CAST() 函數將 JSON 數組轉換為 SQL 類型的數組。多值索引通常配合如下函數使用:MEMBER OF()、JSONCONTAINS() 和 JSONOVERLAPS(),例如:
SELECT * FROM t1 WHERE 123 MEMBER OF(data->'$.data.zipcode');
三、JSON 模式
繼續增加對 JSON 模式的支持JSON_SCHEMA_VALID(, )函數實現 JSON 文檔的驗證 [WL #11999]。JSON_SCHEMA_VALIDATION_REPORT(, )函數實現結構化打印 JSON 對象,提供更詳細的錯誤報告 [WL #13005]。
四、改進優化器
子查詢優化,將 NOT EXISTS 和 NOT IN 轉換為反半連接 [WL#4245]。轉換降低了運行成本,即通過將子查詢表引入頂層查詢,并通過將半連接和反連接合并在一起。確保 SQL 條件中的所有謂詞都是完整的 [WL#12358],不完整的謂詞會被不等式代替。解析器,優化器和執行器只需處理完成謂詞。
將 CAST 添加到 FLOAT / DOUBLE / REALCatalin,以支持根據 SQL 標準對 FLOATING 點數據類型進行強制轉換操作。這使得顯式CAST支持與具有更多種類投射可能性的隱式CAST對齊。[WL#529] 支持顯式強制 DOUBLE,FLOAT 以及 REAL 使用其中一個功能 CAST() 或 CONVERT()。
五、Volcano 迭代器
這項功能是基于 Volcano 模型,目標是簡化代碼庫,啟用散列連接等新功能,并啟用更好的EXPLAIN和EXPLAIN ANALYZE。
Volcano iterator semijoin [WL#12470] 在迭代器執行器中實現了所有形式的半連接。
迭代器執行程序分析查詢 [WL#12788] 通過支持窗口函數,匯總和最終重復數據刪除,擴展了迭代器執行程序可以處理的分析查詢的范圍。
六、字符集新增排序規則
為 utf8mb4 添加新的二進制排序規則 utf8mb4_0900_bin [WL#13054] 新的排序規則類似于 utf8mb4_bin 排序規則,區別在于 utf8mb4_0900_bin 使用 utf8mb4 編碼字節并且不增加填充空間。
七、復制增強
通過自動實例克隆增強的組復制分布式恢復。
增強了組復制的跨版本互操作性。
加密條件和臨時,磁盤上的二進制日志捕獲緩存。
mysqlbinlog 的協議壓縮支持。
特別注意,此版本實現了對集群或組成員的克隆支持,這是在 MGR 和 InnoDB Cluster 方面的重大改進。
八、路由
MySQL 8.0.17 為 MySQL 路由添加了監控基礎架構和監控 REST 接口。希望監控路由器的應用程序和用戶可以獲得對配置數據,性能信息和資源使用情況的結構化訪問。此外,MySQL 路由已經與 MySQL Group Replication 進一步集成,因為它現在處理由組復制協議發出的視圖更改通知。
九、MTR 測試組件
將 MyISAM 的測試用例移動到單獨的 .test 文件 [WL#7407]?并允許 MTR 測試組件在未安裝 MyISAM 引擎的服務器上運行。
十、其它
服務器能夠以最多255個字符的主機名運行。[WL#12571]
將互斥鎖定順序檢查添加到服務器,這將作為一種方法和工具來強制運行時執行沒有死鎖。[WL#3262]
若存在工作線程更多分區的情況下,進一步拆分剩余分區來改進并行掃描。[WL#12978]
在 MySQL 客戶端中添加操作系統信息作為連接屬性,這使 DBA 可以更輕松地通知用戶在服務器上運行耗時的查詢。[WL#12955]
十一、棄用和刪除
首先要強調的是,MySQL 8.0.17 不會刪除任何功能,但會在 8.0 系列中中將某些功能標記為已棄用。在將來的主要版本中刪除不推薦使用的功能。
棄用或警告 named_pipe_full_access_group 的值 'everyone' 。我們希望將來我們會將 named_pipe_full_access_group 系統變量的默認值從 'everyone' 更改為 'i.e. no-one'。[WL#12670]
棄用用于指定?_bin 排序規則的關鍵字 BINARY。[WL#13068]
棄用整數顯示寬度和 ZEROFILL 選項。[WL#13127]
棄用 DECIMAL 和 FLOAT 數據類型的無符號屬性。[WL#12391]
棄用 SQL 語句中 && 和 || 作為 AND 和 OR 的同義詞。[WL#13070]
棄用在 DOUBLE 和 FLOAT 上使用 AUTO_INCREMENT。[WL#12575]
棄用指定浮點類型位數的能力。[WL#12595]
棄用非標準語法 SQL_CALC_FOUND_ROWS 和 FOUND_ROWS。[WL#12615]
最后
MySQL 8.0 在整體可用性上繼續加強,特別是在組復制方面持續改進,并完善了 MySQL Shell 等新特性。社區會針對一些新特性持續發布文章,盡情期待!
參考鏈接:
https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-17.html https://mysqlserverteam.com/the-mysql-8-0-17-maintenance-release-is-generally-available/ https://mysqlhighavailability.com/automatic-provisioning-in-group-replication/
近期社區動態
喜歡點“分享”,不行就“在看”
多喝熱水,重啟試試
總結
以上是生活随笔為你收集整理的发布json数据_技术分享 | MySQL 8.0.17 GA 发布!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: word doc怎么显示base64图片
- 下一篇: mysql建表语句主键自增_MYSQL索