内容来源:2017年2月26日,叶金荣在“OSC源创会福州站”进行《MySQL 5.7新时代》演讲分享。IT大咖说作为独家视频合作方,经主办方和讲者审阅授权发布。
阅读字数:1132 | 4分钟阅读
摘要
MySQL 5.7版本新增了很多特别实用的功能,截止目前已经发布5.7.17版本,也越来越成熟了,而且Group Replication也GA了。就让我们一起来看看MySQL 5.7版本的新时代,功能为我们带来什么变化。
MySQL5.7新气象
2013.4.23发布了MySQL5.7.1,距今已有4年了。它最主要的几个特性,一是性能上提升、InnoDB方面的性能提升,还有复制极大增强,以及查询优化器开始支持基于代价的规则。
并原生支持JSON。
Performance_Schema增加了众多信息。
新增sys schema,管理更方便了。
安全性提升。
GIS增强。
性能增强
这是5.7和5.5和5.6的性能对比,可以看到5.7的性能强悍多了,尤其是在高并发场景下。
优化器增强
5.7版本在查询过程中可以增加很多关键字,避开某些执行计划方面的坑。
InnoDB引擎
最瞩目的无疑是可以在线修改InnoDB Buffer Pool,由小改大几乎没有影响,由大改小只需要释放部分内存,影响也不大,可做到秒级完成。
InnoDB Buffer dump and load增强。
Temporary table增强。5.7版本InnoDB的临时表可以单独放在自己的临时表空间里,此外临时表不会再记录redo。
Online DDL增强,在线增加VARCHAR列长度。在不跨越255字节长度的前提下,可以把字节数直接进行在线调整。增加VARCHAR长度几乎无额外代价。
InnoDB Monitor取消innodb_xx_monitor机制,改成另外两个选项控制。
支持更多page_cleaner线程提升purge效率。
表空间文件迁移增强,增加对分区表空间文件支持。
自动检测设备是否支持原子写,确认后关闭double writebuffer。
索引更新效率提升3倍以上。
InnoDB表分区性能提升,尤其是在有大量分区情况,且内存消耗更少。
支持spatial indexes,检索更精确。
透明data page压缩,压缩比变化不大,但读取效率高多了。(尤其是在慢速I/O设备上)
MySQL复制
真正实现多线程并发复制。
多源复制。把多个主服务器上的数据复制到从服务器上,这样的好处就是可以做到数据汇总,在数据分析业务场景中非常实用,也可以提高服务器资源利用率。
复制性能提升。减少master上的dump thread并发锁,提高并发率。
半同步复制更可靠更灵活。接收、发送信号线程分离(串行变并行),提高复制效率。
组复制类似PXC架构,可以实现多节点同时写入,同时提供读写均衡。
复制管理更方便。无需完全停止所有SLAVE线程即可在线执行CHANGE MASTER TO。可在线修改REPLICATION FILTER规则。执行SHOW SLAVE STATUS无锁,不再被阻塞。
Mysqlbinlog解析binlog同时支持rewrite规则。
PERFORMANCE_SCHEMA
内存统计视图有助于更快理解内存分配情况,以及找到内存泄露原因。
通过事务相关图,可以看到事务延迟,事务隔离级别,是否自动提交以及GTID信息。
MySQL复制相关图可以看到复制相关信息,可以取代SHOW SLAVE STATUS。
SYS Schema
从SYS Schema可以快速获取锁等待、内存分配和SQL统计。
查看I/O读写最多的文件。
查看热门SQL top10。
安全性
数据库安全增强。
初始化时采用随机密码。
只创建root@localhost账号,再也没有匿名账号。
不创建test库。
设置密码有效期,过期不予连接。
密码过期或首次登录需要设置新密码。
今天的分享到此结束,谢谢大家!