【知識】MySQL 8.0的新特性簡述

1.5 MySQL 8.0的新特性

簡述和MySQL 5.7相比,MySQL 8.0的新特性主要包括以下幾個方面沈贝。

1.數(shù)據(jù)字典

MySQL 8.0包含一個事務數(shù)據(jù)字典咳短,用于存儲有關數(shù)據(jù)庫對象的信息眶蕉。在MySQL8.0之前的版本中砰粹,字典數(shù)據(jù)存儲在元數(shù)據(jù)文件和非事務表中。

2.原子數(shù)據(jù)定義語句

MySQL 8.0支持原子數(shù)據(jù)定義語言(DDL)語句造挽。此功能稱為原子DDL碱璃。原子DDL語句將與DDL操作關聯(lián)的數(shù)據(jù)字典更新,存儲引擎操作和二進制日志寫入組合到單個原子事務中饭入。即使服務器在操作期間暫停嵌器,也會提交事務,并將適用的更改保留到數(shù)據(jù)字典谐丢、存儲引擎和二進制日志爽航,或者回滾事務。通過在MySQL 8.0中引入MySQL數(shù)據(jù)字典乾忱,可以實現(xiàn)原子DDL讥珍。在早期的MySQL版本中,元數(shù)據(jù)存儲在元數(shù)據(jù)文件窄瘟、非事務性表和存儲引擎特定的字典中衷佃,需要中間提交。MySQL數(shù)據(jù)字典提供的集中式事務元數(shù)據(jù)存儲消除了這一障礙蹄葱,使得將DDL語句操作重組為原子事務成為可能氏义。

3.安全和賬戶管理

MySQL 8.0通過以下功能增強數(shù)據(jù)庫的安全性,并在賬戶管理中實現(xiàn)更高的DBA靈活性图云。MySQL數(shù)據(jù)庫的授權表統(tǒng)一為InnoDB(事務性)表惯悠。每個語句都是事務性的,并且對所有創(chuàng)建的用戶都是成功或者回滾琼稻,發(fā)生任何錯誤都無效吮螺。如果成功饶囚,就將語句寫入二進制日志帕翻;如果失敗則不寫入鸠补,發(fā)生回滾并且不進行任何更改。
MySQL 8.0開始支持角色嘀掸,角色可以看成是一些權限的集合紫岩,為用戶賦予統(tǒng)一的角色,權限的修改直接通過角色來進行睬塌,無須為每個用戶單獨授權泉蝌。管理員可以創(chuàng)建和刪除角色。
MySQL 8.0開始維護有關密碼歷史的信息揩晴,從而限制了以前密碼的重用勋陪。管理員可以在全局以及每個賬戶的基礎上建立密碼重用策略,從而在密碼更改時限制使用以前使用過的密碼硫兰。
MySQL 8.0允許賬戶具有雙密碼诅愚,從而在多服務器系統(tǒng)中無縫地執(zhí)行分階段密碼更改,無須停機劫映。

4.資源管理

MySQL現(xiàn)在支持資源組的創(chuàng)建和管理违孝,并允許將服務器內運行的線程分配給特定的資源組。資源組屬性可以控制其資源泳赋,以啟用或限制資源組中線程的資源消耗雌桑。數(shù)據(jù)庫管理員可以根據(jù)不同的工作負載修改這些屬性。

5.InnoDB增強功能

MySQL 8.0增強了InnoDB的功能祖今,主要表現(xiàn)如下:
(1)MySQL 8.0將自增主鍵的計數(shù)器持久化到重做日志中校坑。每次計數(shù)器發(fā)生改變,都會將其寫入重做日志中衅鹿。如果數(shù)據(jù)庫重啟撒踪,InnoDB會根據(jù)重做日志中的信息來初始化計數(shù)器的內存值。為了盡量減小對系統(tǒng)性能的影響大渤,計數(shù)器寫入重做日志時制妄,并不會馬上刷新數(shù)據(jù)庫系統(tǒng)。
(2)如果索引損壞泵三,InnoDB將索引損壞標志寫入重做日志耕捞,從而使得損壞標志安全。InnoDB還將內存中損壞標志數(shù)據(jù)寫入每個檢查點上的引擎專用系統(tǒng)表烫幕。在恢復期間俺抽,InnoDB從兩個位置讀取損壞標志并在將內存表和索引對象標記為損壞之前合并結果。
(3)新的動態(tài)變量innodb_deadlock_detect可用于禁用死鎖檢測较曼。在高并發(fā)系統(tǒng)上磷斧,當許多線程等待同一個鎖時,死鎖檢測會導致速度減慢,此時禁用死鎖檢測可能更有效弛饭。

6.字符集支持

默認字符集已經(jīng)更改latin1為utf8mb4冕末。該utf8mb4字符集有幾個新的排序規(guī)則,其中包括utf8mb4_ja_0900_as_cs侣颂。

7.增強JSON功能

MySQL增強JSON功能主要表現(xiàn)在以下幾個方面:
(1)添加了->>運算符档桃,相當于調用JSON_UNQUOTE()的結果。
(2)添加了兩個JSON聚合函數(shù)JSON_ARRAYAGG()和JSON_OBJECTAGG()憔晒。JSON_ARRAYAGG()將列或表達式作為其參數(shù)藻肄,并將結果聚合為單個JSON數(shù)組。JSON_OBJECTAGG()取兩個列或表達式拒担,將其解釋為鍵和值嘹屯,并將結果作為單個JSON對象返回。
(3)添加了JSON實用程序功能JSON_PRETTY()从撼,JSON以易于閱讀的格式輸出現(xiàn)有值抚垄;每個JSON對象成員或數(shù)組值都打印在一個單獨的行上,子對象或數(shù)組相對于其父對象是2個空格谋逻。
(4)添加的JSON_MERGE_PATCH()可以合并符合RFC 7396標準的JSON呆馁。在兩個JSON對象上使用時,可以將它們合并為單個JSON對象毁兆。

8.數(shù)據(jù)類型的支持

MySQL 8.0支持將表達式用作數(shù)據(jù)類型的默認值浙滤,包括BLOB、TEXT气堕、GEOMETRY和JSON數(shù)據(jù)類型纺腊,在以前的版本中是根本不會被分配默認值的。

9.查詢的優(yōu)化

MySQL 8.0在查詢方面的優(yōu)化表現(xiàn)如下:
(1)MySQL 8.0開始支持不可見索引茎芭。優(yōu)化器根本不使用不可見索引揖膜,但會以其他方式正常維護。默認情況下梅桩,索引是可見的壹粟。通過不可見索引,數(shù)據(jù)庫管理員可以檢測索引對查詢性能的影響宿百,而不會進行破壞性的更改趁仙。
(2)MySQL8.0開始支持降序索引。DESC在索引定義中不再被忽略垦页,而且會降序存儲索引字段雀费。

10.公用表表達式

MySQL現(xiàn)在支持非遞歸和遞歸的公用表表達式。公用表表達式允許使用命名的臨時結果集痊焊,通過允許WITH語句之前的子句SELECT和某些其他語句來實現(xiàn)盏袄。

11.窗口函數(shù)

在MySQL 8.0版本中忿峻,新增了一個窗口函數(shù),用它可以實現(xiàn)很多新的查詢方式辕羽。窗口函數(shù)類似于SUM()炭菌、COUNT()那樣的集合函數(shù),但它并不會將多行查詢結果合并為一行逛漫,而是將結果放回多行當中。

12.統(tǒng)計直方圖

MySQL 8.0實現(xiàn)了統(tǒng)計直方圖赘艳。利用直方圖酌毡,用戶可以對一張表的一列做數(shù)據(jù)分布的統(tǒng)計,特別是針對沒有索引的字段蕾管。這可以幫助查詢優(yōu)化器找到更優(yōu)的執(zhí)行計劃枷踏。

13.備份鎖

新類型的備份鎖在聯(lián)機備份期間允許DML,同時防止可能導致快照不一致的操作掰曾。新的備份鎖由LOCK INSTANCE FOR BACKUP和UNLOCK INSTANCE語法支持旭蠕。管理員擁有BACKUP_ADMIN權限才能使用這些語句。如果讀者想進一步深入學習MySQL 8.0的新功能旷坦,可以參照官方的相關資料:https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html?tdsourcetag=s_pctim_aiomsg掏熬。

本文轉載自《MySQL 8從入門到精通(視頻教學版) 》,更多詳情信息請各大平臺購買書籍了解秒梅。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末旗芬,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子捆蜀,更是在濱河造成了極大的恐慌疮丛,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辆它,死亡現(xiàn)場離奇詭異誊薄,居然都是意外死亡,警方通過查閱死者的電腦和手機锰茉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進店門呢蔫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人飒筑,你說我怎么就攤上這事咐刨。” “怎么了扬霜?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵定鸟,是天一觀的道長。 經(jīng)常有香客問我著瓶,道長联予,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮沸久,結果婚禮上季眷,老公的妹妹穿的比我還像新娘。我一直安慰自己卷胯,他們只是感情好子刮,可當我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著窑睁,像睡著了一般挺峡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上担钮,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天橱赠,我揣著相機與錄音,去河邊找鬼箫津。 笑死狭姨,一個胖子當著我的面吹牛,可吹牛的內容都是我干的苏遥。 我是一名探鬼主播饼拍,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼田炭!你這毒婦竟也來了惕耕?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤诫肠,失蹤者是張志新(化名)和其女友劉穎司澎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體栋豫,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡挤安,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了丧鸯。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蛤铜。...
    茶點故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖丛肢,靈堂內的尸體忽然破棺而出围肥,到底是詐尸還是另有隱情,我是刑警寧澤蜂怎,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布穆刻,位于F島的核電站,受9級特大地震影響杠步,放射性物質發(fā)生泄漏氢伟。R本人自食惡果不足惜榜轿,卻給世界環(huán)境...
    茶點故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望朵锣。 院中可真熱鬧谬盐,春花似錦、人聲如沸诚些。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诬烹。三九已至砸烦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間椅您,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工寡键, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留掀泳,地道東北人。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓西轩,卻偏偏與公主長得像员舵,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子藕畔,可洞房花燭夜當晚...
    茶點故事閱讀 42,700評論 2 345

推薦閱讀更多精彩內容

  • MySQL 8.0 正式版 8.0.11 已發(fā)布马僻,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,...
    秦澤超閱讀 8,388評論 0 1
  • 對于MySQL的歷史注服,相信很多人早已耳熟能詳韭邓,這里就不要贅述。下面僅從產品特性的角度梳理其發(fā)展過程中的里程碑事件溶弟。...
    零一間閱讀 1,677評論 1 21
  • 默認字符集由latin1變?yōu)閡tf8mb4:在8.0版本之前女淑,默認字符集為latin1,utf8指向的是utf8m...
    mysia閱讀 754評論 1 10
  • MySQL 8.0 新特性完整匯總辜御,見鏈接:https://mytecdb.com/blogDetail.php?...
    偏執(zhí)的工匠閱讀 54,053評論 4 53
  • 作者:偏執(zhí)的工匠原文:http://www.reibang.com/p/be29467c2b0c 1. 默認字符...
    MySQL技術閱讀 1,095評論 0 0