MySQL 8.0.3 RC即將釋出
阿新 • • 發佈:2018-12-27
導讀
MySQL 8.0.3即將釋出,和葉師傅一起看看有什麼新變化吧
我這幾天有事在家工作,但肯定不會錯過MySQL的big news。
這不,今晚出去遛娃時收到傳送給ACE的郵件,預告MySQL 8.0.3即將釋出,這是個RC版本,預示著8.0版本離GA是越來越近了,回來等娃娃睡著了趕緊整理分享出來。
藉著ACE的“特權”,一起和大家分享下8.0.3版本的一些重要新特性、新變化吧。
- 直接廢除query cache(簡直是眾望所歸啊,葉師傅不知道呼籲過多少次了。我沒記錯的話,應該只是關閉入口,自行編譯原始碼的話,還能再次啟用);
- 查詢優化器支援直接在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,而且還擔心會影響別人);
- 查詢優化器現在支援將各個列統計結果直方圖儲存在 column_statistics 資料字典中,以便構造執行計劃。有了這個直方圖,就可用於該列和常量的比較判斷。
- 查詢優化器中新增標記位 use_invisible_indexes,用於控制在構造執行計劃時是否考慮不可見索引(invisible indexes)因素;
- InnoDB新增 備份專用鎖,在以前InnoDB表線上熱備時若同時進行DML可能導致InnoDB檔案的快照不一致,有了這個備份鎖就不用擔心了。備份鎖用法是 LOCK INSTANCE FOR BACKUP、UNLOCK INSTANCE
- InnoDB現在支援表DDL的原子性,也就是InnoDB表上的DDL也可以實現事務完整性了,要麼失敗回滾,要麼成功提交,不至於出現DDL時部分成功的問題,此外還支援crash-safe特性(這個功能大讚啊);
- 若是延遲初始化組複製(GR,Group Replication),也就是在 single-primary 模式下,輔助節點上可以通過非同步複製通道寫入資料,這在正常初始化組複製外掛時是不允許的(Bug #26314756,這是個內部BUG ID,我們看不到的,別費勁了。不過還有萬能的github啊,也能看到相關描述,參見: https://github.com/mysql/mysql-server/commit/acbf1d13ecd1d89557f8ca62116f06e8633dc90d);
- 系統庫INFORMATION_SCHEMA中的FILES、PARTITIONS、REFERENTIAL_CONSTRAINTS等幾個檢視被重新實現了一番(這個沒說太具體,可能和所有的DDL都放入InnoDB有關係,不再使用FRM檔案儲存DDL資訊);
- 由於外來鍵約束鎖功能改造,涉及到外來鍵約束的父表上的列改名功能將暫時被禁用一段時間(估計過幾個小版本就能正常用了);
- InnoDB通用表空間新增改名語法:ALTER TABLESPACE … RENAME TO(作為MySQL DBA,貌似沒什麼人玩通用表空間,可能從Oracle DBA轉過來更習慣使用吧);
- MySQL複製的slave節點上,log_slave_updates選項預設值改為ON(這個也是比較實用,方便將該slave直接作為中繼節點使用);
- 選項sql_log_bin的全域性作用域被改成回話級作用域,也就是修改本選項隻影響本會話,不再影響全域性(這個選項一般也是在會話級使用);
- 選項max_allowed_packet的預設值從4M提高到64M(這個貌似比較實在);
- 選項event_scheduler的預設值由OFF改成ON,使得預設啟用event scheduler功能(我覺得event功能挺好的呀,不過貌似沒幾個人使用event);
- 選項max_error_count的預設值從64提高到1024(沒感覺的說);
- 最後一個,utf8mb4字符集增加毛子(俄語)的校驗集(新增utf8mb4_ru_0900_ai_ci、utf8mb4_ru_0900_as_cs兩種collations set),這關我們毛事啊,略過…
好了,先劇透到這裡哈,一起期待8.0.3的釋出吧 ✌️yeah!
原文來自:老葉茶館