MySQL 8.0.3 RC 版即將釋出,看看有哪些變化

發表於2017-09-11

MySQL 8.0.3 即將釋出,一起看看有什麼新變化吧

MySQL 8.0.3 即將釋出 RC 版本,這預示著 8.0 版本離 GA 越來越近了。

下面分享一下 8.0.3 版本的一些重要新特性、新變化:

  1. 直接廢除 query cache(應該只是關閉入口,自行編譯原始碼的話,還能再次啟用)
  2. 查詢優化器支援直接在 SQL 中利用 SET_VAR 這個 HINT 語法修改某些會話級的選項,比如:- SELECT /*+ SET_VAR(sort_buffer_size = 16M) */ name FROM people ORDER BY name;- INSERT /*+ SET_VAR(foreign_key_checks=OFF) */ INTO t2 VALUES(2);

    (這個功能超級實用啊,直接在 SQL 內可以修改了,都不用再寫一個 SQL,而且還擔心會影響別人)

  3. 查詢優化器現在支援將各個列統計結果直方圖儲存在 column_statistics 資料字典中,以便構造執行計劃。有了這個直方圖,就可用於該列和常量的比較判斷
  4. 查詢優化器中新增標記位 use_invisible_indexes,用於控制在構造執行計劃時是否考慮不可見索引(invisible indexes)因素
  5. InnoDB 新增備份專用鎖,以前 InnoDB 表線上熱備時若同時進行 DML 可能導致 InnoDB 檔案的快照不一致,有了這個備份鎖就不用擔心了。備份鎖用法是 LOCK INSTANCE FOR BACKUP、UNLOCK INSTANCE,需要有 BACKUP_ADMIN 許可權
  6. InnoDB 現在支援表 DDL 的原子性,也就是 InnoDB 表上的 DDL 也可以實現事務完整性了,要麼失敗回滾,要麼成功提交,不至於出現 DDL 時部分成功的問題,此外還支援 crash-safe 特性(這個功能大讚啊)
  7. 若是延遲初始化組複製(GR,Group Replication),也就是在 single-primary 模式下,輔助節點上可以通過非同步複製通道寫入資料,這在正常初始化組複製外掛時是不允許的(Bug #26314756,這是個內部 BUG ID,我們看不到的,別費勁了。不過還有萬能的 github 啊,也能看到相關描述,參見:https://github.com/mysql/mysql-server/commit/acbf1d13ecd1d89557f8ca62116f06e8633dc90d
  8. 系統庫 INFORMATION_SCHEMA 中的 FILES、PARTITIONS、REFERENTIAL_CONSTRAINTS 等幾個檢視被重新實現了一番(這個沒說太具體,可能和所有的 DDL 都放入 InnoDB 有關係,不再使用 FRM 檔案儲存 DDL 資訊)
  9. 由於外來鍵約束鎖功能改造,涉及到外來鍵約束的父表上的列改名功能將暫時被禁用一段時間(估計過幾個小版本就能正常用了)
  10. InnoDB 通用表空間新增改名語法:ALTER TABLESPACE … RENAME TO(作為 MySQL DBA,貌似沒什麼人玩通用表空間,可能從 Oracle DBA 轉過來更習慣使用吧)
  11. MySQL 複製的 slave 節點上,log_slave_updates 選項預設值改為 ON(這個也是比較實用,方便將該 slave 直接作為中繼節點使用)
  12. 選項 sql_log_bin 的全域性作用域被改成回話級作用域,也就是修改本選項隻影響本會話,不再影響全域性(這個選項一般也是在會話級使用)
  13. 選項 max_allowed_packet 的預設值從 4M 提高到 64M(這個貌似比較實在)
  14. 選項 event_scheduler 的預設值由 OFF 改成 ON,使得預設啟用 event scheduler 功能(我覺得 event 功能挺好的呀,不過貌似沒幾個人使用 event)
  15. 選項 max_error_count 的預設值從 64 提高到 1024(沒感覺的說)
  16. 最後一個,utf8mb4 字符集增加俄語的校驗集(新增 utf8mb4_ru_0900_ai_ci、utf8mb4_ru_0900_as_cs 兩種 collations set)

一起期待 8.0.3 的釋出吧!

相關文章