MySQL 5.7 新特性有很多,有以下这些
一、InnoDB变更
- 默认存储引擎改为InnoDB:MySQL 5.7将默认存储引擎改为InnoDB,以推动其成为事实标准。这意味着任何未指定存储引擎的表都将使用InnoDB。
CREATE TABLE t1 (id INT); -- 使用InnoDB
- 多页表空间:新引入多页表空间,用于代替原来的系统表空间和页文件。每个表空间可容纳多个表,并支持多达128TB的数据。
CREATE TABLESPACE ts_1 ADD DATAFILE 'ts_1.ibd' SIZE 1G;
CREATE TABLE t1 (id INT) TABLESPACE ts_1;
- 临时表空间:新增临时表空间的概念,临时表不指定表空间时会使用临时表空间。临时表空间的大小可配置,默认自适应。
SET GLOBAL tmp_table_size = 100*1024*1024; -- 配置临时表最大空间为100M
CREATE TEMPORARY TABLE t1 (id INT); -- 不指定表空间,使用临时表空间
- 自适应哈希索引:新引入自适应哈希索引,可自动调整索引的大小来控制存储空间,并且保持查询性能。
CREATE TABLE t1 (id INT, KEY idx1 (id)) ENGINE=INNODB;
二、安全性提升
- 更安全的密码策略:新增更严格的密码策略,包括密码长度限制、大小写混合、特殊字符及历史密码检查等。
SET GLOBAL validate_password_policy=MEDIUM; -- 设置中等密码强度策略
CREATE USER 'user1' IDENTIFIED BY 'Pass@123'; -- 密码需符合策略
- 安全的初始密码:新增初始密码选项,可通过–initialize或–initialize-insecure选项设置root用户初始密码。
mysqld --initialize-insecure --user=mysql --设置root初始密码,不安全
mysqld --initialize --设置root复杂初始密码,安全
-
自定义test数据库
MySQL 5.7 默认安装完成后没有 test 数据库。用户可以自行创建 test 数据库并对其进行权限控制。
-
默认SSL加密
MySQL 5.7 采用了更加简单的 SSL 安全访问机制,默认连接使用 SSL 的加密方式。
-
密码过期策略
MySQL 5.7 支持用户设置密码过期策略,要求用户在一定时间过后必须修改密码。
-
审计日志:新增审计日志(Audit Log)功能,可记录数据库访问和操