MySQL5.7发布很久了,最近有些时间,看看官方文档看看有啥新功能
下面选取的一些比较重要的功能,进行说明。
添加的功能
1,安全
服务器现在要求mysql.user表中的帐户行 具有非空 plugin列值,并禁用具有空值的帐户(提高些安全性)
MySQL现在允许数据库管理员为自动密码过期建立策略:任何使用密码超过其允许的生命周期的帐户连接到服务器的用户都必须更改密码。(密码过期策略)
管理员可以锁定和解锁帐户,以便更好地控制谁可以登录。(lock and unlock user)
使用OpenSSL编译的MySQL服务器可以在启动时自动生成缺失的SSL和RSA证书和密钥文件(使用SSL加密更方便了)
使用mysqld --initialize "4.3.1 mysqld - MySQL服务器"安装的MySQL部署默认是安全的。以下更改已作为默认部署特性实施:
安装过程只创建一个 root帐户, 'root'@'localhost'自动为该帐户生成随机密码,并将密码过期。MySQL管理员必须连接为root使用随机密码并分配新密码。(服务器将随机密码写入错误日志,以后再没初始密码就去日志里面找去。O(∩_∩)O哈哈~)
安装不会创建匿名用户帐户。
安装不会创建test 数据库。
2,SQL模式更改。 事务性存储引擎STRICT_TRANS_TABLES的严格SQL模式现在默认启用。(更加方便进行SQL语句移植了呗)
3,在线修改表。 ALTER TABLE现在支持RENAME INDEX重命名索引的 子句。在没有表拷贝操作的情况下进行更改。它适用于所有存储引擎(从此改索引名称会更快了!)
4,innodb的功能改进
在线更改varchar字节大小,从0-255或者256至最大
in-place ALTER TABLE不支持VARCHAR从小于256字节增加 大小到等于或大于256字节的值,因为有长度字节的变化。(也就是在不改变长度字节的情况下,修改varchar类型更加方便了)
ALTER TABLE t1 ALGORITHM=INPLACE, CHANGE COLUMN c1 c1 VARCHAR(255);
不支持VARCHAR使用in-place 减小大小ALTER TABLE。减小 VARCHAR大小需要一个表副本(ALGORITHM=COPY)
InnoDB支持分区表和单个 表分区的可 传输表空间功能 此增强功能简化了分区表的备份过程,并支持在MySQL实例之间复制分区表和单个表分区(复制转移单个分区表格,分区表格数据量大的时候挺管用的相信我 (>▽
该 innodb_buffer_pool_size 参数是动态的,允许您在不重新启动服务器的情况下调整缓冲池的大小(动态调整po0l_size,貌似不错的样子,以后调整不需要关服务了,耶!!)
InnoDB支持使用CREATE TABLESPACE语法创建常规表空间。
(额,这个功能不太常用)
CREATE TABLESPACE `tablespace_name`
ADD DATAFILE 'file_name.ibd'
[FILE_BLOCK_SIZE = n]
DYNAMIC将替换 COMPACT为InnoDB表格的隐式默认行格式。新的配置选项 innodb_default_row_format指定默认的InnoDB行格式。
5,系统和状态变量。系统和状态变量信息现在可用于性能架构表中,优先于使用 INFORMATION_SCHEMA表来获取这些变量。这也影响SHOW VARIABLES和 SHOW STATUS声明的操作(感觉和Oracle越来越像了哦!)
6, sys模式。 MySQL发行版现在包含 sys架构,该架构是一组对象,可帮助DBA和开发人员解释由性能架构收集的数据。 sys架构对象可以用于典型的调优和诊断用例(我的直觉告诉我,会有大用 哼(ˉ(∞)ˉ)唧)
7,优化。
EXPLAIN 可用于获取在命名连接中执行的可解释语句的执行计划
EXPLAIN [options] FOR CONNECTION connection_id;
8,mysql客户端。 以前,mysql中的Control + C会中断当前语句,如果没有,或者退出mysql。现在Control + C会 中断当前语句(如果有),否则会取消任何部分输入行,但不会退出。(挺好的一个功能)
9,组复制性能架构表。 MySQL 5.7在Performance Schema中添加了许多新表来提供有关复制组和通道的信息。这些包括以下表格:
replication_applier_configuration
replication_applier_status
replication_applier_status_by_coordinator
replication_applier_status_by_worker
replication_connection_configuration
replication_connection_status
replication_group_members
replication_group_member_stats
所有这些表都是在MySQL 5.7.2中添加的,除了 replication_group_membersand replication_group_member_stats,它们都是在MySQL 5.7.6中添加的。
10,组复制SQL。 在MySQL 5.7.6中添加了以下用于控制组复制的语句:
START GROUP_REPLICATION
STOP GROUP_REPLICATION