MySQL 8的關鍵新特性
MySQL的第八個版本蓄勢待發,並有望於2018年發布。在MySQL 5.7.9的首個通用版本推出後的28個月內,MySQL 8發布了從8.0.0到8.0.4這五個候選版本。這些發布候選僅針對開發使用,而不應該生產系統中使用。因為這些候選版並不支援版本升級,使用者可能會碰上候選版與一般可用(GA)版間存在資料格式不相容的問題。
使用者首先可能注意到,在版本號碼上出現了一個跳躍。這是因為MySQL丟棄了版本6,而將版本7用於企業產品線。
視窗函數(Window Function)是MySQL 8中最令人感興趣的特性。其它一些資料庫引擎中業已實現該特性。視窗函數對一系列查詢行執行彙總運算,並可對每一行彙總周邊的資料而產生結果。
類似於窗函數,遞迴CTE(Common Table Expressions)支援使用者在不使用遊標的情況下,執行引用了自身的子查詢。該投影片對此特性作了詳細的闡述。
MySQL 8的預設字元集支援也從“Latin1”轉變為“utf8mb4”。utf8mb4支援每個字元使用多至四個位元組。它是很多應用的首選字元集,因為它支援大多數擴充字元序(例如日語所用的utf8mb4_ja_0900_as_cs
等)以及emoji字元。在儲存方面,MySQL 8的預設儲存引擎將使用InnoDB。
隱藏索引(Invisible indexes)支援DBA將某個索引設為不被查詢最佳化工具所考慮。該特性用於測試指定的索引對查詢效能的影響情況,並可在對使用者實際啟用該索引前,恢複索引在查詢最佳化中的可見度。MySQL 8還大幅改進了對JSON的支援,添加了基於路徑查詢參數從JSON欄位中抽取資料的JSON_EXTRACT()
函數,以及用於將資料分別組合到JSON數組和對象中的JSON_ARRAYAGG()
和JSON_OBJECTAGG()
彙總函式。
MySQL 8提供了靈活的角色支援,支援CREATE、DROP和GRANT角色,甚至可將一個角色賦予另一個角色,並可限制MySQL 8中可用的角色對每個會話或主機的可用性。使用者也可以通過調用ROLES_GRAPHML()函數,實現角色的GraphML可視化。
MySQL 8曾計劃於2017年10月發布,但是8.0.4 RC直至2018年1月23日才發布。看來在正式推出GA版之前,至少還需要發布兩個候選版。
查看英文原文: Best New Features of MySQL 8
本文永久更新連結地址:https://www.bkjia.com/Linux/2018-03/151251.htm