MySQL 8.0 新增特性介紹

chenfeng發表於2018-04-23
1. 資料字典
新增了事務型的資料字典,用來儲存資料庫物件資訊,之前字典資料是儲存在後設資料檔案和非事務型表中的


2. 賬號許可權管理
  • 新增了對 “角色” 的支援,角色會對應一套許可權,角色可以被新增、刪除,角色上的許可權也可以進行增刪
  • 可以對使用者賬號新增和刪除角色


3. InnoDB 提升
  • 完善了對自增計數器(auto-increment counter)的管理,例如設定了計數器的初始值,在伺服器重啟後也不會受到影響;執行 ROLLBACK 也不會導致計數器的值被重用
  • InnoDB memcached 外掛支援在一個查詢中獲取多個key/value對兒,並可以進行範圍查詢
  • 新增了動態配置項 innodb_deadlock_detect,用來禁用死鎖檢查,因為在高併發系統中,當大量執行緒等待同一個鎖時,死鎖檢查會大大拖慢資料庫
  • 所有的InnoDB臨時表會被建立到共享的臨時表空間中
  • SELECT ... FOR SHARE 和 SELECT ... FOR UPDATE 中支援 NOWAIT、SKIP LOCKED選項,NOWAIT 的作用是,當被請求的行被鎖住時,此語句立即返回;SKIP LOCKED的作用是從結果集中移除被鎖住的行


4. JSON 提升
  • 新增內聯路徑運算子 ->>,相當於對 JSON_EXTRACT() 的結果集呼叫 JSON_UNQUOTE()
  • 新增兩個JSON聚合函式:JSON_ARRAYAGG()、 JSON_OBJECTAGG()
  • 新加一個工具函式 JSON_PRETTY(),可以對 JSON 進行格式化,提高可讀性
  • 在查詢中使用 order by 對 JSON 值進行排序時,每個值的 sort key 的長度將是可變的,而不再是固定的1K,有兩個好處,1)更高效的使用排序緩衝空間,更多的資料可以在記憶體中,避免不必要的磁碟訪問;2)提高 key 的比較效能


5. Optimizer 最佳化器
  • 支援隱藏索引,最佳化器可以忽略隱藏索引,但隱藏索引是被正常維護的,作用是用來測試無效索引,刪除某索引之前,可以先設定為隱藏索引,確定對系統沒有影響後再刪除,以防刪掉後再次重建(相關文章:MySQL 8.0 新特性 :隱藏索引)
  • 支援降序索引,可以對索引定義 DESC,之前,索引可以被反序掃描,但影響效能,而降序索引就可以高效的完成


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2153217/,如需轉載,請註明出處,否則將追究法律責任。

相關文章