一、MySQL5.7的新特性
一、MySQL服务功能增强
1、数据库初始化方式变更
2、支持为表增加计算列
实操:https://www.jianshu.com/p/2d3a6a5d296b
1、MySQL5.7之前
需要使用触发器实现相关功能
2、MySQL5.7之后
在CREATE TABLE及ALTER TABLE语句中支持增加计算列的方式
col_name data_type [GENETATED ALWAYS] AS (expression) [VIRTUAL | STORED] [UNIQUE [KEY]] [COMMENT comment] [[NOT] NULL] [PRIMARY] key]
3、引用json列类型及相关函数
1、MySQL5.7之前
只能在varchar或是text等字符类型的列中存储json类型的字符串,并通过程序解析使用json字符串
2、MySQL5.7之后
增加了json列类型及以json_开头的相关处理函数,如json_type(),json_object(),json_merge()等。
二、Replication相关增强
1、支持多源复制
单源复制
多源复制
2、基于库或是逻辑锁的多线程复制
1、MySQL5.7之前
从MySQL5.6开始支持多线程复制,只不过是对每一库一个复制线程
2、MySQL5.7之后
MySQL5.7后多线程复制功能进行了加强,增加了slave_parallel_type参数胡可以控制并发同步时基于database还是logical_clock
3、在线变更复制方式
1、MySQL5.7之前
要把基于日志点的复制方式变为基于gtid的复制方式或是把基于gtid的复制方式变为基于日志点的复制方式必须要重启master服务器
2、MySQL5.7之后
允许在线变列复制的方式,而不用重启master服务器
在线变更复制方式的步骤:
三、Innodb引擎增强
1、支持缓冲池大小innodb_buffer_pool在线变更
1、MySQL5.7之前
要变更innodb_buffer_pool大小必须更改my.cnf文件后重启数据服务器
2、MySQL5.7之后
innodb_buffer_pool_size参数变为动态参数,可以在线调整innodb缓存池的大小
2、增加innodb_buffer_pool导入导出功能
MySQL5.7之后增加了以下参数控制innodb_buffer_pool的导入导出
innodb_buffer_pool_dump_pct
innodb_buffer_pool_dump_now
innodb_buffer_pool_dump_at_shutdown
innodb_buffer_pool_load_at_startup
innodb_buffer_pool_load_now
3、支持为innodb表建立表空间
1、MySQL5.7之前
具有系统变空间及可以为每个表简历一个独立表空间
2、MySQL5.7之后
支持CREATE TABLESPACE语法为一个表或多个表建立共用的表空间
四、安全及管理方面的增强
1、不在支持old_password认证
2、增加账号默认过期时间及加强了对账号的管理功能
3、增加了sys管理数据库