一、在线持久化参数
1. 支持参数持久化到配置文件(持久化到data目录的 mysqld-auto.cnf,该配置文件参数级别要高于/etc/my.cnf中的,其实就是后加载,会覆盖 /etc/my.cnf 中相同的配置参数)
语法案例:
SET persist innodb_buffer_pool_size= 1073741824
二、账户与安全
1. 用户的创建与授权
在MySQL5.7的版本:
> grant all privileges on *.* to '用户名'@'主机' identified by '密码';
在MySQL8.0需要分开执行:
>create user '用户名'@'主机' identified by '密码';
>grant all privileges on *.* to '用户名'@'主机';
用以前的一条命令在8.0里面创建用户,会出现sql语法错误
2. 用户的创建与授权
在MySQL5.7的版本:角色role 便是一犀利权限的集合,创建用户时候指定角色,就表示拥有了这个角色对应的权限
三、CTE递归
1.
四、窗口函数
1. 一般都是用于 分组 排序 取前N行
row_number()over(partition by user_id order by amount desc)
五、JSON增强
1.
六、降序索引
1. MySQL 8.0按降序提供对索引的支持。这种索引中的值按降序排列,我们向前扫描。在8.0之前,当用户创建降序索引时,我们创建了一个升序索引并向后扫描它。一个好处是前向索引扫描比后向索引扫描更快。真正的降序索引的另一个好处是它使我们能够使用索引而不是filesort来处理ORDER BY 具有混合ASC/DESC 排序键部分的 子句 。 降序索引 是一种经常请求的SQL功能。
七、explain
1. 使用explain之后,直接使用 show warings 可以看见mysql真正执行的sql,以前版本需要使用 explain extended sql
八、DDL 原子性
1. drop table t1,t2 ; 若t2表不存在,8.0之后支持DDL 原子操作,会报错,俩个表都不会被drop;以前的版本 会报错,t1会被drop