MySQL 8.0.0開發(fā)里程碑版發(fā)布!
MySQL 開發(fā)團(tuán)隊(duì)于 12 日宣布 MySQL 8.0.0 開發(fā)里程碑版本(DMR)發(fā)布! 可能有人會驚奇 MySQL 為何從 5.x 一下跳躍到了 8.0。事實(shí)上,MySQL 5.x 系列已經(jīng)延續(xù)了很多年,從被 Oracle 收購之前就是 5.1,而收購之后一直維持在 5.x,比如 5.5,5.6,5.7 等等。其實(shí),如果按照原本的發(fā)布節(jié)奏,可以把 5.6.x 當(dāng)成 6.x,5.7.x 當(dāng)成 7.x。所以,只是換了版本命名方式而已。

不過這次發(fā)布的 MySQL 8.0.0 開發(fā)版本還是有不少亮點(diǎn)的。
MySQL 8.0.0 亮點(diǎn)
事務(wù)性數(shù)據(jù)字典,完全脫離了 MyISAM 存儲引擎
真正將數(shù)據(jù)字典放到了 InnoDB 中的一些表中,從此不再需要 FRM、TRG、PAR 文件啦!Information Schema 現(xiàn)在以數(shù)據(jù)字典表的一個(gè)視圖出現(xiàn)。原則上可以完全不需要 MyISAM 數(shù)據(jù)表類型了,所有的系統(tǒng)表都可以放到 InnoDB 之中。
SQL 角色
角色是一系列權(quán)限的集合??梢詣?chuàng)建角色,給某個(gè)用戶授予和去除角色。這對于權(quán)限管理很方便。
utf8mb4 字符集將成為默認(rèn)字符集,并支持 Unicode 9
默認(rèn)字符集將從 latin1 改為 utf8mb4,默認(rèn)定序 collation 將從 latin1_swedish_ci 改為 utf8mb4_800_ci_ai。
不可見索引
可以將一些索引設(shè)置為不可見,這樣 SQL 優(yōu)化器就不會用到它,但是它會繼續(xù)在后臺保持更新。當(dāng)有需要時(shí),可以隨時(shí)恢復(fù)可見。
對二進(jìn)制數(shù)據(jù)可以進(jìn)行位操作
不僅僅可以對 BIGINT 進(jìn)行位操作,從 8.0 開始也支持對 [VAR]BINARY/[TINYMEDIUMLONG]BLOB 進(jìn)行位操作了。
改進(jìn)了對 IPv6 和 UUID 的操作
INET6_ATON () 和 INET6_NTOA () 現(xiàn)在可以進(jìn)行位操作了,因?yàn)?INET6_ATON ()現(xiàn)在返回的是 VARBINARY (16) 數(shù)據(jù)類型(128 位)。改進(jìn)了 UUID 操作,引入了三個(gè)新的函數(shù) UUID_TO_BIN (), BIN_TO_UUID ()和 IS_UUID () 。MySQL 并沒有特殊的 IPv6 和 UUID 數(shù)據(jù)類型,而是以 VARBINARY (16) 數(shù)據(jù)類型保存的。
持續(xù)性的全局變量
可以用 SET PERSIST 來設(shè)置持久性的全局變量,即便重啟也會保持下來。
性能數(shù)據(jù)庫 Performance Schema 的改進(jìn)
比如對性能數(shù)據(jù)庫增加了 100 多個(gè)索引,可以檢索更快。
重構(gòu) SQL 分析器
持續(xù)不斷的逐步改進(jìn) SQL 分析器。舊的分析器由于其語法復(fù)雜性和自頂向下的分析方式從而有嚴(yán)重的限制,導(dǎo)致難以維護(hù)和擴(kuò)展。
成本模型
InnoDB 緩沖區(qū)現(xiàn)在可以估算主內(nèi)存緩存區(qū)中的有多少表和索引,這可以讓優(yōu)化器選擇訪問方式時(shí)知道數(shù)據(jù)是否可以存儲在內(nèi)存中還是必須存儲到磁盤上。
直方圖 Histograms
通過使用直方圖,用戶或 DBA 可以對數(shù)據(jù)分布進(jìn)行統(tǒng)計(jì),這可以用于查詢優(yōu)化以尋找優(yōu)化的查詢方案。
改進(jìn)掃描性能
改進(jìn)了 InnoDB 范圍查詢的性能,可提升全表查詢和范圍查詢 5-20% 的性能。
重構(gòu) BLOB
重構(gòu) BLOB 加速了片段讀取/更新操作,可以加速 JSON 數(shù)據(jù)的操作。
持久化自增值
InnoDB 會持久化保持自增序列的最大值到 redo 日志中。這個(gè)改進(jìn)還修復(fù)了一個(gè)非常老的 199 號 bug。
臨時(shí)表
取消對壓縮臨時(shí)表的支持,并存儲臨時(shí)表的元數(shù)據(jù)到內(nèi)存中。
其它的更多重要改進(jìn)和細(xì)節(jié),請參考 MySQL 8.0.0 發(fā)布公告[1]和[2] 。
下載
目前 8.0.0 還是開發(fā)版本,如果你希望體驗(yàn)和測試最新特性,可以從 dev.mysql.com[3] 下載各個(gè)平臺的安裝包。不過,MySQL 軟件包是越來越大了,Linux 平臺上的二進(jìn)制打包后就將近有 1 GB。如果在產(chǎn)品環(huán)境中使用,在 8.0 沒有進(jìn)入穩(wěn)定版本之前,請繼續(xù)使用 5.7 系列,當(dāng)前最新的版本是 5.7.15 GA 版本——這只有 600 M 多。
最新的源代碼放在GitHub 上,感興趣的朋友可以去看看,其中有不少是中國人的貢獻(xiàn)。
[1]: http://dev.mysql.com/doc/relnotes/mysql/8.0/en/
[2]: http://mysqlserverteam.com/the-mysql-8-0-0-milestone-release-is-available/
[3]: http://dev.mysql.com/downloads/mysql/
相關(guān)文章
PowerDesigner連接MySQL數(shù)據(jù)庫的詳細(xì)步驟
這篇文章主要介紹PowerDesigner連接MySQL數(shù)據(jù)庫的詳細(xì)步驟,文章通過圖文介紹的非常詳細(xì),對大家學(xué)習(xí)PowerDesigner連接MySQL數(shù)據(jù)庫有一定的幫助,需要的朋友可以參考下2023-09-09
DROP TABLE在不同數(shù)據(jù)庫中的寫法整理
這篇文章主要介紹了DROP TABLE在不同數(shù)據(jù)庫中的寫法整理的相關(guān)資料,需要的朋友可以參考下2017-04-04
MySQL數(shù)據(jù)時(shí)區(qū)問題以及datetime和timestamp類型存儲的差異
這篇文章主要介紹了MySQL數(shù)據(jù)時(shí)區(qū)問題以及datetime和timestamp類型存儲的差異,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11
Centos?7.9安裝MySQL8.0.32的詳細(xì)教程
這篇文章主要介紹了Centos7.9安裝MySQL8.0.32的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03
MYSQL SERVER收縮日志文件實(shí)現(xiàn)方法
這篇文章主要介紹了MYSQL SERVER收縮日志文件實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
windows無法啟動MySQL服務(wù)報(bào)錯1067的解決方法
這篇文章主要為大家詳細(xì)介紹了windows無法啟動MySQL服務(wù)報(bào)錯1067的3種解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01

