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_sizeResizing the InnoDB Buffer Pool Online - 自动Truncate UNDO 日志,避免undo 日志太大
- 在线重命名索引
- 在线扩大
VARCHAR类型列的长度 - 在线修改复制过滤器
CHANGE REPLICATION FILTERMaking MySQL Slave Replication Filter Dynamic - 在线更改Slave的Master,无需停止复制
CHANGE MASTERChange 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. 使用 ...
随机推荐
- 一个将lambda字符串转化为lambda表达式的公共类
一个将lambda字符串转化为lambda表达式的公共类.StringToLambda 使用方式如下: var module = new Module(); url = url.ToLower();/ ...
- 关于EL表达式中requestScope和param区别
今天演示EL表达式的时候发现自己jsp的基础实在是薄弱,在这个很简单的问题上迷惑了很久. 首先在看遇到的问题: 在浏览器地址输入,表示传入一个参数test,值为123 http://localhost ...
- 微服务RPC框架选美
原文:http://p.primeton.com/articles/59030eeda6f2a40690f03629 1.RPC 框架谁最美? Hello,everybody!说到RPC框架,可能大家 ...
- 2017-2018-2 20155203《网络对抗技术》Exp9 :Web安全基础
实践过程记录 - SQL Injection(Webgoat 8.0&Webgoat7.0) 1. SQL Injection(Webgoat 8.0). 这一部分很基础,是简单的sql注入, ...
- 20155209林虹宇Exp4 恶意代码分析
Exp4 恶意代码分析 系统运行监控 使用schtasks指令监控系统运行 新建一个txt文件,然后将txt文件另存为一个bat格式文件 在bat格式文件里输入以下信息 然后使用管理员权限打开cmd, ...
- 20155321 《网络对抗》 Exp6 信息搜集与漏洞扫描
20155321 <网络对抗> Exp6 信息搜集与漏洞扫描 实验内容 信息搜集 whois 在kali终端输入whois 网址,查看注册的公司.服务.注册省份.传真.电话等信息 dig或 ...
- [Deep-Learning-with-Python]基于Kears的Reuters新闻分类
Reuters数据集下载速度慢,可以在我的repo库中找到下载,下载后放到~/.keras/datasets/目录下,即可正常运行. 构建神经网络将路透社新闻分类,一共有46个类别.因为有多个类别,属 ...
- stl源码剖析 详细学习笔记 hashtable
//---------------------------15/03/24---------------------------- //hashtable { /* 概述: sgi采用的是开链法完成h ...
- MongoDB的账户与权限管理及在Python与Java中的登录
本文主要介绍了MongoDB的账户新建,权限管理(简单的),以及在Python,Java和默认客户端中的登陆. 默认的MongoDB是没有账户权限管理的,也就是说,不需要密码即可登陆,即可拥有读写的权 ...
- 由Windows开发平台向Linux平台转移的一些想法
从毕业到现在已经快20年了,一直在从事Windows平台上的开发工作.刚毕业那会大约是97,98年左右,工作的平台除了Windows平台还有Dos平台,因为在学校学习时,也是从Dos开始的.因此对于从 ...