MySQL 8 新特性介紹

MySQL JSON Linux Solaris hola點點 hola點點 2017-10-14

原文:What’s new in MySQL 8.0

作者:Serdar Yegulalp

譯者:Jackyrong

本文提要:廣受歡迎的開源數據庫MySQL 8中,包括了眾多新特性,其中包括對Unicode更好的支持、對JSON格式和文檔的處理,以及一直以來呼籲增加的象window函數的功能等。

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

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

相關推薦

推薦中...