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. 使用 ...
随机推荐
- 一,ESP8266下载和刷固件(基于Lua脚本语言)
用自己的小板测试...... 安排上呢 一, ESP8266下载和刷固件(Lua开发----体验一下lua开发的魅力所在) 二, 控制一个灯亮灭 三, TCP服务器 四, TCP客户端 五, UDP ...
- jqgrid 获取远端数据失败时,弹出错误提示
有时,我们给jqgrid绑定的远端数据获取失败,此时,需要把错误信息反馈给用户展示,如何实现? 可通过jqgrid的 loadError 来处理错误数据的返回.详细如下: $("#jqGri ...
- js获取图片的原始尺寸
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...
- APP快速搭建框架
AppDelegate: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDicti ...
- 实测—fft IP核使用(包括ifft的配置使用)
Vivado xilinx fft9.0 使用笔记: ****注 仿真实测1024点的转换需要经过1148个时钟周期才能得到转换结果: 模块配置信号含义请参考pg109文档手册(写的贼烂会看晕),不详 ...
- 关于KMP
KMP算法,对于求b串在a串中出现的次数. 在学习KMP之前,希望大家充分掌握hash. HASH: 1.hash表:用来离散化(hash数组,hash链表) 2.Rabin-Kap算法: 可替代KM ...
- Mybatis使用generator自动生成的Example类使用OR条件查询
参考:https://blog.csdn.net/qq_36614559/article/details/80354511 public List<AssetsDevicetypeRefacto ...
- stl源码剖析 详细学习笔记 算法(3)
//---------------------------15/03/30---------------------------- //min_element template<class Fo ...
- 杂谈---小故事小道理,面试中的小技巧(NO.2)
本篇是接着上一篇面试随笔的,上一次有猿友反应写的有些“扯淡”,LZ思来想去最大的原因可能是由于上一章写的全是一些大忌,既然是大忌,那么在现实当中发生的概率还是相对较小的,大部分人还是很少在面试中犯如此 ...
- 软件测试_APP测试_兼容性测试
APP的兼容测试主要就是测试APP的安装.启动.运行.卸载测试,以及安装时间 .启动时间.CPU占用.内存占用.流量耗用.电量耗用等性能上的测试. 兼容性测试点: 一.内部兼容性: 1.与本地和其他主 ...