MySQL 8.0新特性概覽

chenfeng發表於2017-01-23
1.事務性資料字典,完全脫離了MyISAM儲存引擎
真正將資料字典放到了InnoDB中的一些表中,從此不再需要FRM、TRG、PAR檔案啦!Information Schema現在以資料字典表的一個檢視出現。原則上可以完全不需要MyISAM資料表型別了,所有的系統表都可以放到InnoDB之中。
2.SQL角色
角色是一系列許可權的集合。可以建立角色,給某個使用者授予和去除角色。這對於許可權管理很方便。
utf8mb4字符集將成為預設字符集,並支援Unicode 9
預設字符集將從 latin1 改為 utf8mb4,預設定序collation將從latin1_swedish_ci 改為 utf8mb4_800_ci_ai。
3.不可見索引
可以將一些索引設定為不可見,這樣SQL最佳化器就不會用到它,但是它會繼續在後臺保持更新。當有需要時,可以隨時恢復可見。
對二進位制資料可以進行位操作
不僅僅可以對 BIGINT進行位操作,從8.0開始也支援對 [VAR]BINARY/[TINY|MEDIUM|LONG]BLOB進行位操作了。
4.改進了對IPv6和UUID的操作
INET6_ATON() 和 INET6_NTOA() 現在可以進行位操作了,因為INET6_ATON()現在返回的是VARBINARY(16) 資料型別(128位)。改進了UUID操作,引入了三個新的函式 UUID_TO_BIN(), BIN_TO_UUID()和 IS_UUID() 。MySQL並沒有特殊的IPv6和UUID資料型別,而是以VARBINARY(16) 資料型別儲存的。
5.持續性的全域性變數
可以用 SET PERSIST 來設定永續性的全域性變數,即便伺服器重啟也會保持下來。
效能資料庫Performance Schema的改進
比如對效能資料庫增加了100多個索引,可以檢索更快。
6.重構SQL分析器
持續不斷的逐步改進SQL分析器。舊的分析器由於其語法複雜性和自頂向下的分析方式從而有嚴重的限制,導致難以維護和擴充套件。
7.成本模型
InnoDB緩衝區現在可以估算主記憶體快取區中的有多少表和索引,這可以讓最佳化器選擇訪問方式時知道資料是否可以儲存在記憶體中還是必須儲存到磁碟上。
8.直方圖Histograms
透過使用直方圖,使用者或DBA可以對資料分佈進行統計,這可以用於查詢最佳化以尋找最佳化的查詢方案。
9.改進掃描效能
改進了InnoDB範圍查詢的效能,可提升全表查詢和範圍查詢 5-20%的效能。
10.重構BLOB
重構BLOB加速了片段讀取/更新操作,可以加速JSON資料的操作。
11.持久化自增值
InnoDB會持久化保持自增序列的最大值到redo日誌中。這個改進還修復了一個非常老的199號bug。
12.臨時表
取消對壓縮臨時表的支援,並儲存臨時表的後設資料到記憶體中。


從MySQL8.0以後,我們可以發現MySQL做的越來越像Oracle了。

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

相關文章