首頁  >  文章  >  後端開發  >  MySQL 8.0版本新功能詳細介紹

MySQL 8.0版本新功能詳細介紹

小云云
小云云原創
2017-11-08 17:15:152348瀏覽

MySQL 開發團隊宣布 MySQL 8.0.0 開發里程碑版本(DMR)發布!之後,有人可能會驚訝 MySQL 為何從 5.x 一下跳躍到了 8.0。事實上,MySQL 5.x 系列已經延續了很多年,從被 Oracle 收購之前就是 5.1,而收購之後一直維持在 5.x,例如 5.5,5.6,5.7 等等。其實,如果按照原本的發布節奏,可以把 5.6.x 當成 6.x,5.7.x 當成 7.x。所以,只是換了版本命名方式而已。

MySQL是眾多網站技術堆疊中的標準配置,是廣受歡迎的開源資料庫,已經推出了8.0的第一個候選發行版本。

 MySQL 8.0的新功能包括:

 對Unicode 9.0的開箱即用的完整支援

支援視窗函數和遞歸SQL語法,這在以往是不可能或者很難才能編寫這樣的查詢語句

對原生JSON資料和文件儲存功能的增強支援

# MySQL 8.0的發布,跳過了多個版本號(從5.5開始),由於6.0修改和7.0是用來保留做MySQL的叢集版本,因此採用了8.0的版本號碼。

MySQL 8.0的預期發布日期

根據MySQL的策略“一個新的【一般】版本發布的周期是18-24個月”, MySQL並沒有承諾MySQL 8.0的發布日期。最近一次MySQL 5.7的發布是2015年的10月21日,所以MySQL 8.0的正式版本發行可能會在2017年10月。

 MySQL 8.0標準化Unicode之路

預設支援Unicode可以說是MySql 8.0最大的改變之一。 長期以來,MySQL一直存在著對Unicode的許多沒能解決的問題。 所以,對MySQL 8.0來說,一個長期的計畫是盡可能修復那些持續的Unicode問題。

 MySQL 8.0不再將latin1設為預設的編碼,以防止新使用者使用了這個有問題的遺留選項。現在推薦utf8mb4作為MySQL 8.0的預設字元集設置,其目的是比現在不在建議的utf8mb3字元設定更快,同時也支援更靈活的排序並區分大小寫。

 增強的Unicode不但支援非西方的字元集合也支援目前日益發展的emoji表情。

 MySQL 8.0支援視窗函數

許多SQL語言標準的實作(如Oracle,譯者註)都支援視窗函數,它是能實現跨多行聚合運算的功能,並且仍然允許從查詢中存取到單獨的行。在以前的MySQL版本中,不使用視窗函數是可以實現的,但很麻煩而且速度很慢。為了克服這個缺陷,MySQL 8.0透過標準的SQL關鍵字OVER來實現視窗函數的功能,有點像競爭對手PostgreSQL的實作方法。

 同樣另一個功能是遞迴公用表表達式,它能讓你針對子查詢進行遞迴操作,而無需使用遊標或其他有損性能的解決方法。

 MySQL 8.0更好支援文件型資料庫和JSON

MySQL 5.7支援JSON,這讓MySQL 能使用原生JSON和NoSQL資料庫競爭。 MySQL 8.0 擴展了對JSON的支持,並且性能更加好,增加了從JSON查詢中返回範圍的功能(就像SQL語句”top n”的功能),也增加了新的聚合函數能讓在同一個查詢語句中,能結合MySQL原生的結構化資料和JSON的半結構化資料。

與JSON相關的另一項改進包括MySQL的文檔儲存。 對MySQL文件儲存的讀取和寫入在事務上是一致的,允許對JSON資料進行更改的回滾操作。文件資料以開放的、用於地理空間資料的GeoJSON格式存儲,並且能被索引,因此可以進行領接方式的搜尋。

MySQL 8.0的其他關鍵功能

其他MySQL 8.0計畫更新的功能包括:

在鎖定行方面增加了更多選項,如SKIP LOCKED和NOWAIT兩個選項。其中,

SKIP LOCKED允許在操作中不鎖定那些需要忽略的行;NOWAIT則在遇到行的鎖定的時候馬上拋出錯誤。

MySQL能根據可用記憶體的總量去伸縮擴展,以便更好地利用虛擬機器的部署。

新增「隱藏索引」的特性,這樣索引可以在查詢最佳化器中變成不可見。索引在標記為不可用後,和表的資料變更同步,但是優化器不會使用它們。對於使用隱藏索引的建議,是當不決定某個索引是否需要保留的時候,可以使用。

現在你可以下載MySQL 8.0的Windows,MacOS,Linux的若干版本,FreeBSD和Solaris;也可以下載原始碼。可以在官網的下載頁面中,訪問其中的開發者候選版本去下載它們。

 

 


以上是MySQL 8.0版本新功能詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn