> 本文將和大家一起分享下5.7的新特性,不過我們要先從即將被刪除的特性以及建議不再使用的特性說起。根據這些情況,我們在新版本及以后的版本中,應該不再使用,避免未來產生兼容性問題。
本文是基于MySQL-5.7.7-rc版本,未來可能 還會發生更多變化。
## 1、即將刪除的特性
1. InnoDB monitoring features,詳見:[WL#7377](http://dev.mysql.com/worklog/task/?id=7377)(訪問地址:[http://dev.mysql.com/worklog/task/?id=7377](http://dev.mysql.com/worklog/task/?id=7377),下面的其他WL,可以自行替換)
【建議】可以動態修改 innodb_status_output、innodb_status_output_locks 兩個參數的值打印相關信息,或者直接查看INFORMATION_SCHEMA下的相關表。
2. old-password,4.1之前的就密碼認證模式已經禁用,old_passwords參數不可用,WL#8006
【建議】盡快升級舊密碼串,同時升級MySQL版本,不要告訴我,你還在用4.1甚至更早的版本。
## 2、部分SQL語法不可用
1. ALTER TABLE … IGNORE。
2. INSERT DELAY特性,但保留這個語法。WL#6073
3. ERROR_FOR_DIVISION_BY_ZERO, NO_ZERO_DATE, NO_ZERO_IN_DATE SQL MODES 等幾個SQL MODE合并到STRICT中。不過可能會導致replication失敗,所以還在考慮中。WL#7467
4. 不再支持YEAR(2),建議盡快升級成YEAR(4)。WL#6263
【建議】盡可能使用標準SQL語法,不再使用MySQL特有的,或者不是那么嚴格要求的語法,避免以后版本升級遇到更多麻煩。
## 3、一些參數不可用
1. 不再支持一些指令的簡短寫法,必須要求寫全了,例如mysqldump –compr表示 mysqldump –compress,以后必須將整個參數寫完整。WL#6978
2. 刪除timed_mutexes。WL#7436
3. 不能再禁用InnoDB引擎,因為系統表也都改成InnoDB了。WL#7976
4. 性能提升有限,刪除innodb_use_sys_malloc、innodb_additional_mem_pool_size。WL#7628
5. 意義不大,刪除innodb_mirrored_log_groups。WL#6808
6. 已經有新的系統參數代替了,刪除innodb_file_io_threads。WL#7149
7. 刪除系統參數storage_engine,改用default_storage_engine。WL#7148
8. 刪除mysql_upgrade中的–basedir和–datadir系統參數。WL#7010
## 4、一些客戶端工具
mysqlaccess、mysql_convert_table_format、mysql_fix_extensions、mysql_find_rows.sh、mysql_setpermission、msql2mysql、mysqlbug、mysql_zap and mysql_waitpid、mysqlhotcopy將不再使用。
【建議】沒什么好說的,順應潮流跟上新版本吧,該放棄的就放棄,不要抱殘守缺了,這些工具也基本上都用不上的。
下一期,我們講講5.7中不再建議使用的特性, 也就是未來可能會被刪除的特性。