老牌關聯式資料庫MySQL,在去年就進入8.0候選版,現在終於釋出了正式版。在8.0中新增了非常多的功能,不只在架構上持續增進SQL與NoSQL的整合,在SQL、JSON、正規表示式或是GIS等開發人員關心的功能也都有強化,而且為了讓MySQL可以儲存表情符號Emojis,還把UTF8MB4訂為8.0預設的字符集。

資料庫的效能是開發者最關心的問題之一,MySQL 8.0增強了讀寫工作負載的能力,並加速了熱點資料的讀取速度。MySQL 8.0比起5.7版本,更加擅長操作高負載的工作,官方表示,在4個並行用戶的密集讀寫工作下,其效能是與MySQL 5.7的兩倍。

在MySQL 5.7中,唯讀的可擴展性比起之前版本大幅提升,但MySQL 8.0卻是讀寫負載的可擴展性同時提升,而這樣的效能提升來自MySQL對於硬體的更高利用率。

另外,企業的儲存架構為配合應用,常需要併用SQL與NoSQL資料庫,但是同時運作不同的資料庫解決方案,帶來許多技術挑戰與風險。官方表示,MySQL 8.0在儲存、結構、協定、API以及工具都有更完整的支援,希望可以解決企業需要多資料庫的窘境。

為此MySQL 8.0強化了SQL與NoSQL資料庫的相關功能,開發人員可以選擇傳統的關聯式資料庫模型,或是JSON文件資料庫模型,而MySQL 8.0也提供橋接SQL與JSON文件資料的函式,並讓使用者以SQL的方式瀏覽JSON文件資料庫的內容。

MySQL 8.0新增了多項新SQL語法支援,其中提供了SQL視窗函式(Window Function),這個在SQL 2003就定義的標準SQL語法。這是類似COUNT或是SUM分組聚合函式的功能,視窗函式能對數個資料列進行一系列計算,只不過分組聚合函式會將結果併為單一列,而視窗函式則是能將結果寫入聚合影響的每一列中。此外還支援遞迴一般表格運算式(Recursive Common Table Expression),這可以看作是強化版的衍生表格,因為這項功能可以讓衍生表格被多次參照。

而對於地理資訊系統(GIS)支援方面,還包括支援空間參照系統(SRS)的元資料、SRS感知空間資料型態、空間索引與空間函式,簡言之,MySQL 8.0現在可以理解地球表面的經緯度座標,能輕易地計算出地表任兩點座標的距離。


Advertisement

更多 iThome相關內容