MySQL 5.7.9 GA穩定版新特性解讀

2015年10月22日,MySQL發佈5.7.9穩定版,雖然MySQL官方手冊裏已經有很多關於MySQL 5.7新特性的介紹,在這裏,還是
讓我們一起看看在MySQL 5.7裏有哪些值得我們關注的新特性吧。 

1、安全性
用戶表mysql.user的plugin字段不允許爲空,默認值是mysql_native_password,而不是mysql_old_password,不再支持舊密碼格式;
增加密碼過期機制,過期後需要修改密碼,否則可能會被禁用,或者進入沙箱模式;
使用mysql_install_db初始化時,默認會自動生成隨機密碼,並保存到/var/log/mysqld.log中(grep 'temporary password' /var/log/mysqld.log),而且不創建除root@localhost 外的其他賬號,也不創建test庫;
在5.7中,推薦使用mysqld --initialize對數據庫進行初始化,在初始化時如果加上–initial-insecure,則會創建空密碼的 root@localhost 賬號,否則會創建帶密碼的 root@localhost 賬號,密碼直接寫在 log-error 日誌文件中(在5.6中是放在~/.mysql_secret裏);在5.7中可以對普通用戶進行unlock及lock操作。 

2、增強了InnoDB引擎的一些功能
優化了DDL操作,在涉及到InnoDB臨時表時,性能顯著提升;在5.6及以前,InnoDB臨時表的元數據存儲在InnoDB系統表裏,在5.7中,臨時表的信息及元數據都存儲在新多出來的表INNODB_TEMP_TABLE_INFO中;
在5.7中,InnoDB臨時表會存儲在一個非壓縮的、單獨的表空間中,每次啓動MySQL服務,都會自動創建該表空間,默認存儲在DATADIR下,其路徑由參數innodb_temp_data_file_path指定;
支持在線(INPLACE)增加VARCHAR列的長度。不過0-255長度是一個區間,256以上是另一個區間,不能跨越255這個坎,比如把長度從100擴展成1000(因爲255長度以內額外用1個字節表示,大於255長度則需要額外2個字節表示);不支持在線縮小VARCHAR的長度 ;支持innodb_page_cleaners選項可設置多個page cleaner線程提高髒頁刷新效率 ;可通過設置innodb_undo_log_truncate等選項自動刪除不用的undo log ;
加強InnoDB read-only模式的性能 ;
在5.7中,可以創建一個普通的表空間:
CREATE TABLESPACE `
tablespace_name`   ADD DATAFILE 'file_name.ibd' 
[FILE_BLOCK_SIZE = n]

3、SQL_MODE
默認啓用STRICT_TRANS_TABLES模式;
對ONLY_FULL_GROUP_BY模式實現了更復雜的特性支持,並且也被默認啓用;
其他被默認啓用的sql mode還有NO_ENGINE_SUBSTITUTION。在5.6中對一個10字符長度的VARCHAR列
寫入15個字符,會自動截斷並給出告警,而在5.7,則直接拋出錯誤了。

4、優化online操作,例如修改buffer pool、修改索引名(非主鍵)、修改REPLICATION FILTER、修改MASTER而無需關閉SLAVE線程等衆多特性。

5、在5.7中,可以在INFORMATION_SCHEMA裏面的表中查看MySQL的系統參數

6、支持一個表上有多個觸發器,這樣一來,原先已有觸發器表也可以支持用pt-osc 了

7、支持對在線某個連接直接查看執行計劃,比如EXPLAIN FOR CONNECTION 1024

8、新增log_syslog選項,可將MySQL日誌打印到系統日誌文件中 

9、在MySQL 5.6以前,在客戶端CTRL+C後會直接退出啊MySQL客戶端,這一點比較噁心,在5.7以後不會退出客戶端而是終端當前的操作

10、新增一個比較好的功能,就是在CREATE | ALTER TABLE時,可以在某張表已有列的基礎上,對新增的列進行運算:
CREATE TABLE triangle ( 
sidea DOUBLE, 
sideb DOUBLE,  
sidec DOUBLE AS (SQRT(sidea * sidea + sideb * sideb))
);

INSERT INTO triangle (sidea, sideb) VALUES(1,1),(3,4),(6,undefined;

mysql> SELECT * FROM triangle;
+-------+-------+--------------------+|
sidea | sideb | sidec             
|+-------+-------+--------------------+
|     1 |     1 | 1.4142135623730951 |
|     3 |     4 |                  5 |
|     6 |     8 |                 10 |
+-------+-------+--------------------+ 

11、支持多源複製,可以把多個MASTER的數據歸併到一個實例上,如果是同一個表的話,會存在主鍵和唯一索引衝突的風險,需要提前做好規劃。 
12、支持多線程複製。

更多精彩MySQL內容 請關注我:

api.php?bg=ffffff&fg=000000&gc=000000&el


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章