2015年10月22日,MySQL發佈5.7.9穩定版,雖然MySQL官方手冊裏已經有不少關於MySQL 5.7新特性的介紹,在這裏,仍是
讓咱們一塊兒看看在MySQL 5.7裏有哪些值得咱們關注的新特性吧。
一、安全性
用戶表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操做。
二、加強了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]
三、SQL_MODE
默認啓用STRICT_TRANS_TABLES模式;
對ONLY_FULL_GROUP_BY模式實現了更復雜的特性支持,而且也被默認啓用;
其餘被默認啓用的sql mode還有NO_ENGINE_SUBSTITUTION。在5.6中對一個10字符長度的VARCHAR列
寫入15個字符,會自動截斷並給出告警,而在5.7,則直接拋出錯誤了。
四、優化online操做,例如修改buffer pool、修改索引名(非主鍵)、修改REPLICATION FILTER、修改MASTER而無需關閉SLAVE線程等衆多特性。
五、在5.7中,能夠在INFORMATION_SCHEMA裏面的表中查看MySQL的系統參數
六、支持一個表上有多個觸發器,這樣一來,原先已有觸發器表也能夠支持用pt-osc 了
七、支持對在線某個鏈接直接查看執行計劃,好比EXPLAIN FOR CONNECTION 1024
八、新增log_syslog選項,可將MySQL日誌打印到系統日誌文件中
九、在MySQL 5.6之前,在客戶端CTRL+C後會直接退出啊MySQL客戶端,這一點比較噁心,在5.7之後不會退出客戶端而是終端當前的操做
十、新增一個比較好的功能,就是在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 |
+-------+-------+--------------------+
十一、支持多源複製,能夠把多個MASTER的數據歸併到一個實例上,若是是同一個表的話,會存在主鍵和惟一索引衝突的風險,須要提早作好規劃。
十二、支持多線程複製。
更多精彩MySQL內容 請關注我:
html