MySQL 5.7 GA 新特性
转载自:
http://www.chinaxing.org/articles/Database/2015/10/23/2015-10-22-mysql-5.7.html
sys-schema
http://mingxinglai.com/cn/2016/03/sys-schema/
http://keithlan.github.io/2015/07/17/22_performance_schema/
MySQL Performance-Schema(一) 配置篇
MySQL Performance-Schema(二) 理论篇
MySQL Performance-Schema(三) 实践篇
Percona的一个测试,在MySQL5.7的情况下将innodb_page_size调整到4k,可以比16k性能提升70%以上;https://www.percona.com/blog/2016/08/10/small-innodb_page_size-performance-boost-ssd/
MySQL 5.7 GA 新特性
MySQL 5.7 算是放大招了,易用性,性能,可用性,安全等都有很大的改善。
性能
性能提升3倍以上。包括:
- 临时表性能
- 大块数据导入时索引构建更快
- innodb的读写性能提升
- innodb的并行刷盘 O(n^2) -> O(n),以前是单线程,这样可以利用多核
- 连接处理能力提升 Improving connect/disconnect performance
易操作性
- GTID 在线设置Enabling Global Transaction Identifiers Without Downtime in MySQL 5.7.6
- 在线修改
innodb_buffer_pool_size
Resizing the InnoDB Buffer Pool Online - 自动Truncate UNDO 日志,避免undo 日志太大
- 在线重命名索引
- 在线扩大
VARCHAR
类型列的长度 - 在线修改复制过滤器
CHANGE REPLICATION FILTER
Making MySQL Slave Replication Filter Dynamic - 在线更改Slave的Master,无需停止复制
CHANGE MASTER
Change Master without stopping slave altogether
SQL优化器提升
- Parser重写 SQL parser refactoring
- 层次化的SQL优化器
- 增加GIS实现
- Query Rewrite插件框架,用户可以编写自己的Query Rewrite插件 Write Yourself a Query Rewrite Plugin ; https://yq.aliyun.com/articles/53686
- subquery的处理归一化:view和from语句2种方式中得subquery都使用统一的处理方式
- 通过使用区间扫描的方式执行行表达式的方法提升”IN queries” 的性能 Range access: now in an INpredicate near you
- “UNION ALL” 不再创建临时表,减少磁盘空间和磁盘IO的操作。 State of the UNION
- 压缩排序缓存中得未排序的字段,更加高效的使用排序缓存,减少磁盘IO
- 可以执行
EXPLAIN FOR CONNECTION
来查看执行中Query得情况,起到运行时profile的作用。 - JSON EXPLAIN 增加query开销的输出,处理的数据集数等信息,便于用户进行执行计划的决策比较 MySQL EXPLAIN explained
- 优化器的暗示器语法增加,可以直接跟在SELECT等关键字之后,/*+ */ 的形式的注释
- 增加了索引层面的暗示器
- 增加控制子查询执行策略的暗示器
- 优化器新的开销评估模型 MySQL Optimizer Cost Model Project
InnoDB 增强
- Page Compression 增加透明页面压缩,对于在支持稀疏文件的系统上,压缩页面的内容,并利用稀疏文件系统的特点只保存压缩后内容,节约磁盘空间的使用。
Performace Schema
监控系统性能能的Schema得以重新设计架构,包括Metadata Locking、Transactions、Memory Usage、Stored Programs、Prepared Statements,MySQL Performace Schema
Buffer Pool Dump/ Load
提升bufferPool的dump和load,支持只dump每个BufferPool最热的百分之N(默认25%)的页面,load在后台运行,不影响用户的查询执行 MySQL Dumping and Reloading the InnoDB Buffer Pool
Replication
- Mutli-Source Replication MySQL Multi-source Replication 允许同一个slave配置多个Master
- Multi-Threaded Slaves Configuring slave for intra-database parallelization 支持Slave SQL执行线程并发应用binlog事件到同一个database和schema(只要没有交集),之前的版本是只支持多个库的并发应用。
- Semi-Sync Master可等待N个slave确认binlog日志收到,之前是仅仅等待1个,这样的好处是增加了持久化的可靠性 Lossless Semi-Synchronous Replication on MySQL 5.7.2
- GTID 方式的复制客户端自动感知GTID,保证GTID_EXECUTED和GTID_PURGED不会丢失 Enabling Global Transaction Identifiers Without Downtime in MySQL 5.7.6
- No-Blocking
SHOW SLAVE STATUS
- mysqlbinlog 支持Rewrite-DB 可以根据指示改写RowEVENT中的DB
- 增加更多的复制相关的状态变量到Performance Schema Table
- Binlogging XA-prepared transactions 在复制中全面支持XA事务
Reference
MySQL 5.7 GA 新特性的更多相关文章
- MySQL 8.0 InnoDB新特性
MySQL 8.0 InnoDB新特性 1.数据字典全部采用InnoDB引擎存储,支持DDL原子性.crash safe,metadata管理更完善 2.快速在线加新列(腾讯互娱DBA团队贡献) 3. ...
- 《转》MySQL 5.7版本新特性连载
MySQL 5.7版本新特性连载(一) 本文将和大家一起分享下5.7的新特性,不过我们要先从即将被删除的特性以及建议不再使用的特性说起.根据这些情况,我们在新版本及以后的版本中,应该不再使用,避免未来 ...
- 《MySQL 5.7 Replication新特性》分享之互动问题解答
原创 2016-07-21 宋利兵 MySQL中文网 分享主题 <MySQL 5.7 Replication新特性> 嘉宾介绍 宋利兵,MySQL研发工程师.2009年加入MySQL全球研 ...
- 【MySQL】MariaDB10.2新特性--Flashback
MariaDB10.2新特性--Flashback Flashback可以回滚到旧的数据,用于解决用户误删除数据的问题. 实战例子 MariaDB [zsd]> select * from te ...
- 【mysql】mysq8.0新特性
一.MySQL8.0简介 mysql8.0现在已经发布,2016-09-12第一个DM(development milestone)版本8.0.0发布.新的版本带来很多新功能和新特性,对性能也得到 ...
- 【MySQL】MariaDB10.3新特性--闪回查询
MariaDB10.3新特性--闪回查询 System-Versioned表特性的引入,可以对表进行闪回.完成类似于Oracle的闪回查询. 修改已有表为System-Versioned MariaD ...
- com.mysql.cj.jdbc.Driver 新特性jdbc.url连接供参考
com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6及以上版本中的参数详解: jdbc.url=jdbc:mysql://localhost:3306/t ...
- Atitit.mysql 5.0 5.5 5.6 5.7 新特性 新功能
Atitit.mysql 5.0 5.5 5.6 5.7 新特性 新功能 1. MySQL 5.6 5 大新特性1 1.1. 优化器的改进1 1.2. InnoDB 改进1 1.3. 使用 ...
- Atitit.mysql 5.0 5.5 5.6 5.7 新特性 新功能
Atitit.mysql 5.0 5.5 5.6 5.7 新特性 新功能 1. MySQL 5.6 5 大新特性1 1.1. 优化器的改进1 1.2. InnoDB 改进1 1.3. 使用 ...
随机推荐
- day35
今日内容: 1.进程间互相通信(IPC机制) 2.生产者消费者模型 3.线程理论 4.线程开启的两种方式 5.线程相关属性方法 6.守护线程 7.线程互斥锁 1.进程间相互通信(IPC机制) 主要是一 ...
- Excel frequency函数
计算连续次数最常用的函数就是FREQUENCY,下面就这个函数在计算连续次数的应用做一个详细图解.首先,我们需要了解一下FREQUENCY函数的计算原理. FREQENCY(数据区域,用于设置区 ...
- Apache服务器笔记
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源代码的网页服务器软件,可以在大多数电脑操作系统中运行,由于其跨平台和安全性.被广泛使用,是最流行的Web服务 ...
- 怎样让oracle实验本在不做实验时性能提升——win7下举例
怎样让oracle实验本在不做实验时性能提升--win7下举例 型号:ThinkPad E431 系统:WIN7 实验使用的笔记本不使用数据库时.建议将oracle关闭,使其释放占用的资源. orac ...
- c# 菜鸟包裹查询
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...
- WPF编程,通过【帧】动态更改控件属性的一种方法。
原文:WPF编程,通过[帧]动态更改控件属性的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/detail ...
- 学习JAVA第一章的心得
我抱着万分期待的心情开始了我第一天的JAVA学习课程,其实在第一开始的时候我对计算机行业便有很高地兴趣了.这主要归功于我真的从很小开始就就接触了电脑.进入学校以来,我就很期待老师会怎样教我们,会怎样带 ...
- java.lang.IllegalStateException: Cannot forward after response has been committe
参考:https://blog.csdn.net/lewky_liu/article/details/79845655 加上 return 搞定
- spring使用 RestTemplate 来进行http访问
https://www.jianshu.com/p/2b03a812d588 https://my.oschina.net/sdlvzg/blog/1800395 异常:org.springframe ...
- 微信小程序之用户信息授权 wx.getUserInfo
用户授权 <button open-type="getUserInfo" bindgetuserinfo='getUser'>授权用户信息</button> ...