加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql5.7新特性

发布时间:2020-12-12 00:00:28 所属栏目:MySql教程 来源:网络整理
导读:1、innodb存储引擎的增强 A:Online alter table以及索引 alter table t rename index t_idx to t_newidx; ? Varchar列的大小在线调整的方法: Alter table t1 algorithm=inplace,change column c1 c1 varchar(255); B:Innodb_buffer_pool online change Mysq

1、innodb存储引擎的增强

A:Online alter table以及索引

alter table t rename index t_idx to t_newidx;

?

Varchar列的大小在线调整的方法:

Alter table t1 algorithm=inplace,change column c1 c1 varchar(255);

B:Innodb_buffer_pool online change

Mysql5.7.5之后在线调整innodb_buffer的大小,引入chunk的概念,每个chunk默认的大小为128M,innodb_buffer_pool_size以chunk为单位进行动态增大和缩小,innodb_buffer_pool_chunk_size。Innodb_buffer_pool_size 的大小是inndb_buffer_pool_chunk_size*innodb_buffer_pool_instances的倍数,如果不是,将适当调大innodb_buffer_pool_size,值从大改小的过程需要释放内存。

C:Innodb_buffer_pool_dump和load的增强

通过设置innodb_buffer_pool_dump_pct实现的即dump的百分比,只导出最热的那部分数据的page,当系统繁忙时,可以通过innodb_io_capacity的参数限制buffer pool_load 的过程。

?D:Innodb 临时表优化

临时表不在记录redo log,mysql 5.7把临时表的数据从系统表空间中抽离出来,形成了自己的独立表空间,并且把临时表的相关索引信息保存在信息表information_schema库下 innodb_temp_table_info表中。

?

独立表空间文件名ibtmp1,默认12MB。

E:Page clean的效率提升

show global variables like '%innodb_page%';

?

Page cleaner线程不再是只有一个,可以通过新增的参数innodb_page_cleaners 来指定page cleaner线程的数量,提高脏页的刷新效率。

F:Undo log 自动清除

启动新增的innodb_undo_log_truncate 参数(默认是关闭状态),设置innodb_undo_log_truncate=1开启。

? 当undo log的大小超过innodb_max_undo_log_size参数指定的最大值,undo log 就会自动清除,以防止磁盘空间产生消耗。

2、其他方面的增强

A:安全性的增强

数据库安装初始化,废弃了mysql_install_db命令,改为使用mysqld命令配合--iniialize的方式。Root用户密码不在默认为空,而是随机尝试一个密码,保存在错日志里面。密码记录不再是password字段,而是authentication_string字段。

默认安装之后的test库没有了,新增super_read_only参数,来禁止超管的写操作权限。增加了账户密码有自动过期策略,密码过期之后需强制进行修改。

?B:Sql_mode的变化

默认开启严格的sql mode(STRICT_TRANS_TABLES),5.7版本之前默认是no_engine_substitution,启用严格模式下,如果遇到sql书写有问题,就会直接抛出错误,不会出现超长内容自动被截断的现象,而且不能再grant命令中直接创建用户了,需要使用create user命令;

?C:Sys schema功能的增强

Sys schema是mysql 5.7.7引入的一个系统库,包含了一系列的试图,函数,存储过程。Sys schema的数据来源主要是performance_shcema。其目的就是为了降低查询performance_schema的复杂度。

?D:复制功能的增强

在复制章节中,我们已经介绍了5.7版本中复制功能的提升,主要分为以下几点:

并行复制:基于logical-clock(5.7版本引入),一个组内提交的内事物都可以并行,可以达到接近主库并发效果。

多源复制:

支持又多个master向一个slave复制。多用于多个服务器备份到单个服务器上。可用于异地灾备,集中备份。

增强半同步:在mysql5.5半同步复制基础上的增强,在集群架构切换时可以保证数据的一致性。由after_commit模式变成了after_sysnc,提高了复制的效率和数据的可靠性。

组复制(mgr):有点像Oracle里面的rac集群,可以保证多节点并行写入数据比较类似PXC,目前不是很成熟,不建议使用。

?E:设置查询SQL的超时(max_execution_time)

5.7.4引入,max_execution_time

Show full processlist;

查看正在执行的线程号。

?F:执行计划的增强

Mysql5.7之前,优化器是性能瓶颈点。5.7之后改善了很多功能。比如in语句子查询优化,mysql5.7的in查询能够使用index range scan 方式,union all 不在产生临时表,新增更多HINTS,并提供HINTS语法。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读