2019年4月25日 星期四

Oracle 推出 MySQL 8.0.16, 再度將MySQL推向另一個顚峰


MySQL425日晚上推出最新的MySQL更新版-MySQL 8.0.16,由於品質控能力和向下相容性的加強,自從MySQL 邁入8.0後版本發佈模式就改為持續交付模式(CDM),在每個更新版都加入新的功能.8.0.168.0正式發行以來第五個更新版,它除了修正200個以上的bug
讓它更穩定外,還推出了多項新加能,其中比較重要的有:
1.          加強對中文的支持, 增加一個字符集的文字排序(collation) – utf8mb4_zh_0900_as_cs, “as”代表重音敏感,”cs”代表大小寫敏感,在這個字符集下,SQL命令的order by 順序可依四聲音符的順序排序.這為中文環境提供了許多的方便性和運用空間
2.          建模的宣告制約支援check constraint – 等你好久了!!!
3.          地理訊息系統(GIS)ST_LENGTH()函式可指定其輸出值的單位,例如公尺、英吋等.
4.          優化器的改良,進一步推升MySQL的性能,包括:
  • SQL命令中WHERE子句中有對常數的比對時,減少資料型別的轉換
  • 子查詢的EXIST子句的SQL執行計畫改為semi-join ,MySQL 5.6即引進semi-join將執行計由巢式(nest loop)改為只查是否符合的join方式,使得某些原來要一天以上的SQL大幅改進到只要數分鐘即可返回結果,這次的改進是將semi-join的範圍擴大到EXIST子句.
  • 引進volcano iterator design join提供更好的EXPLAIN分析,我相信這也能為將來支援parallel query定一個基礎!

5.          Replication binlog中加上table partition的訊息,applier(或SQL線程)能更好的處理併發性.另外.另外,binlog檔案可以AES運算法加密,同時也支援主鑰的輪換.
6.          群組複製
  • 可動態調整XCOM緩存的空間,和設定該緩存的大小之上限,從而改進群組複製在面對大量交易時的性能和穩定性.
  • 群組中的節點下線後,在重新開啟後,不需管理者動手,能自加回,這使得DBA輕鬆多了
  • 支援封包傳輸的分割,這使MGR處理大訊息(交易)的能力更佳,減少因為碰到大交易而使節點被退出群組的機會.
  • 離開群組的節點的可設為READ_ONLYABORT_SERVER.

7.          動態開關(enable/disable)表空間的加密功能.
8.          權限管理,多了SYSTEM_USER權限.以及CONNECT_ADMIN權限中分出KILL線程權限,還可以回收部份權限.
9.          安全管理:
  • libmysql支援TLS1.3
  • 可更改變運行中的MySQL實例之SSL設定,例如更換certificates
  • Performance_schema能記錄key ring訊息

10.      連線的改良:
  • 傳統連線protocol, C API能做非阻塞對話
  • X Protocol當連到錯的protocol,能發出錯誤訊息
  • X protocol能傳對話相關訊息到server,例如應用的名稱、版本、作業系統、和PID
  • X protocol在切換對話時能保留連線訊而不需要再登入或再開連線.

11.      Router:
  • 支援REST endpoint和網路介面和TLS/HTTPS登入
  • 能在單主和多主模式動態切換
  • 支援多種日誌存放方式(file/syslog/console)
  • 運作中的router可動態rotate log
 想了解更多相關訊息請參考 MySQL release node https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-16.html#mysqld-8-0-16-bug
和MySQL開發團隊的部落格 https://mysqlserverteam.com/the-mysql-8-0-16-maintenance-release-is-generally-available/

沒有留言:

張貼留言