- 論壇徽章:
- 8
|
本帖最后由 我忒忙 于 2016-05-18 17:15 編輯
2015年10月22日,MySQL發(fā)布5.7.9穩(wěn)定版,雖然MySQL官方手冊(cè)里已經(jīng)有很多關(guān)于MySQL 5.7新特性的介紹,在這里,還是
讓我們一起看看在MySQL 5.7里有哪些值得我們關(guān)注的新特性吧。
1、安全性
用戶表mysql.user的plugin字段不允許為空,默認(rèn)值是mysql_native_password,而不是mysql_old_password,不再支持舊密碼格式;
增加密碼過期機(jī)制,過期后需要修改密碼,否則可能會(huì)被禁用,或者進(jìn)入沙箱模式;
使用mysql_install_db初始化時(shí),默認(rèn)會(huì)自動(dòng)生成隨機(jī)密碼,并保存到/var/log/mysqld.log中(grep 'temporary password' /var/log/mysqld.log),而且不創(chuàng)建除root@localhost 外的其他賬號(hào),也不創(chuàng)建test庫(kù);
在5.7中,推薦使用mysqld --initialize對(duì)數(shù)據(jù)庫(kù)進(jìn)行初始化,在初始化時(shí)如果加上–initial-insecure,則會(huì)創(chuàng)建空密碼的 root@localhost 賬號(hào),否則會(huì)創(chuàng)建帶密碼的 root@localhost 賬號(hào),密碼直接寫在 log-error 日志文件中(在5.6中是放在~/.mysql_secret里);在5.7中可以對(duì)普通用戶進(jìn)行unlock及l(fā)ock操作。
2、增強(qiáng)了InnoDB引擎的一些功能
優(yōu)化了DDL操作,在涉及到InnoDB臨時(shí)表時(shí),性能顯著提升;在5.6及以前,InnoDB臨時(shí)表的元數(shù)據(jù)存儲(chǔ)在InnoDB系統(tǒng)表里,在5.7中,臨時(shí)表的信息及元數(shù)據(jù)都存儲(chǔ)在新多出來的表INNODB_TEMP_TABLE_INFO中;
在5.7中,InnoDB臨時(shí)表會(huì)存儲(chǔ)在一個(gè)非壓縮的、單獨(dú)的表空間中,每次啟動(dòng)MySQL服務(wù),都會(huì)自動(dòng)創(chuàng)建該表空間,默認(rèn)存儲(chǔ)在DATADIR下,其路徑由參數(shù)innodb_temp_data_file_path指定;
支持在線(INPLACE)增加VARCHAR列的長(zhǎng)度。不過0-255長(zhǎng)度是一個(gè)區(qū)間,256以上是另一個(gè)區(qū)間,不能跨越255這個(gè)坎,比如把長(zhǎng)度從100擴(kuò)展成1000(因?yàn)?55長(zhǎng)度以內(nèi)額外用1個(gè)字節(jié)表示,大于255長(zhǎng)度則需要額外2個(gè)字節(jié)表示);不支持在線縮小VARCHAR的長(zhǎng)度 ;支持innodb_page_cleaners選項(xiàng)可設(shè)置多個(gè)page cleaner線程提高臟頁刷新效率 ;可通過設(shè)置innodb_undo_log_truncate等選項(xiàng)自動(dòng)刪除不用的undo log ;
加強(qiáng)InnoDB read-only模式的性能 ;
在5.7中,可以創(chuàng)建一個(gè)普通的表空間:
CREATE TABLESPACE `
tablespace_name` ADD DATAFILE 'file_name.ibd'
[FILE_BLOCK_SIZE = n]
3、SQL_MODE
默認(rèn)啟用STRICT_TRANS_TABLES模式;
對(duì)ONLY_FULL_GROUP_BY模式實(shí)現(xiàn)了更復(fù)雜的特性支持,并且也被默認(rèn)啟用;
其他被默認(rèn)啟用的sql mode還有NO_ENGINE_SUBSTITUTION。在5.6中對(duì)一個(gè)10字符長(zhǎng)度的VARCHAR列
寫入15個(gè)字符,會(huì)自動(dòng)截?cái)嗖⒔o出告警,而在5.7,則直接拋出錯(cuò)誤了。
4、優(yōu)化online操作,例如修改buffer pool、修改索引名(非主鍵)、修改REPLICATION FILTER、修改MASTER而無需關(guān)閉SLAVE線程等眾多特性。
5、在5.7中,可以在INFORMATION_SCHEMA里面的表中查看MySQL的系統(tǒng)參數(shù)
6、支持一個(gè)表上有多個(gè)觸發(fā)器,這樣一來,原先已有觸發(fā)器表也可以支持用pt-osc 了
7、支持對(duì)在線某個(gè)連接直接查看執(zhí)行計(jì)劃,比如EXPLAIN FOR CONNECTION 1024
8、新增log_syslog選項(xiàng),可將MySQL日志打印到系統(tǒng)日志文件中
9、在MySQL 5.6以前,在客戶端CTRL+C后會(huì)直接退出啊MySQL客戶端,這一點(diǎn)比較惡心,在5.7以后不會(huì)退出客戶端而是終端當(dāng)前的操作
10、新增一個(gè)比較好的功能,就是在CREATE | ALTER TABLE時(shí),可以在某張表已有列的基礎(chǔ)上,對(duì)新增的列進(jìn)行運(yùn)算:
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, ;
mysql> SELECT * FROM triangle;
+-------+-------+--------------------+|
sidea | sideb | sidec
|+-------+-------+--------------------+
| 1 | 1 | 1.4142135623730951 |
| 3 | 4 | 5 |
| 6 | 8 | 10 |
+-------+-------+--------------------+
11、支持多源復(fù)制,可以把多個(gè)MASTER的數(shù)據(jù)歸并到一個(gè)實(shí)例上,如果是同一個(gè)表的話,會(huì)存在主鍵和唯一索引沖突的風(fēng)險(xiǎn),需要提前做好規(guī)劃。
12、支持多線程復(fù)制。
更多精彩MySQL內(nèi)容 請(qǐng)關(guān)注我:
![]()
|
|