> 本文将和大家一起分享下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中不再建议使用的特性, 也就是未来可能会被删除的特性。