MySQL 5.6, 5.7, 8.0版本的新特性汇总大全
转载:http://blog.itpub.net/15498/viewspace-2650661/
MySQL 5.6
1).支持GTID复制
2).支持无损复制
3).支持延迟复制
4).支持基于库级别的并行复制
5).mysqlbinlog命令支持远程备份binlog
6).对TIME, DATETIME和TIMESTAMP进行了重构,可支持小数秒。DATETIME的空间需求也从之前的8个字节减少到
5个字节
7).支持Online DDL。ALTER操作不再阻塞DML。
8).支持可传输表空间(transportable tablespaces)
9).支持统计信息的持久化。避免主从之间或数据库重启后,同一个SQL的执行计划有差异
10).支持支持全文索引
11).支持InnoDB Memcached plugin
12).EXPLAIN可用来查看DELETE,INSERT,REPLACE,UPDATE等DML操作的执行计划,在此之前,只支持SELECT操作
13).分区表的增强,包括最大可用分区数增加至8192,支持分区和非分区表之间的数据交换,操作时显式指定分区
14).Redo Log总大小的限制从之前的4G扩展至512G
15).Undo Log可保存在独立表空间中,因其是随机IO,更适合放到SSD中。但仍然不支持空间的自动回收
16).支持在线和关闭MySQL时dump和load Buffer pool的状态,避免数据库重启后需要较长的预热时间
17).InnoDB内部的性能提升,包括拆分kernel mutex,引入独立的刷新线程,可设置多个purge线程
18).优化器性能提升,引入了ICP,MRR,BKA等特性,针对子查询进行了优化
MySQL5.7
1).支持组复制和InnoDB Cluster
2).支持多源复制
3)支持增强半同步(AFTER_SYNC)
4).支持基于表级别(LOGICAL_CLOCK)的并行复制
5).支持在线开启GTID复制
6).支持在线设置复制过滤规则
7).支持在线修改Buffer pool的大小
8).支持在同一长度编码字节内,修改VARCHAR的大小只需修改表的元数据,无需创建临时表
9).支持可设置NUMA架构的内存分配策略(innodb_numa_interleave)
10).支持透明页压缩(Transparent Page Compression)
11).支持UNDO表空间的自动回收
12).支持查询优化器的增强和重构
13).可查看当前session正在执行的SQL的执行计划(EXPLAIN FOR CONNECTION)
14).引入了查询改写插件(Query Rewrite Plugin),可在服务端对查询进行改写
15).EXPLAIN FORMAT=JSON会显示成本信息,这样可直观的比较两种执行计划的优劣
16).引入了虚拟列,类似于Oracle中的函数索引
17).新实例不再默认创建test数据库及匿名用户
18).引入ALTER USER命令,可用来修改用户密码,密码的过期策略,及锁定用户等
19).mysql.user表中存储密码的字段从password修改为authentication_string
20).支持表空间加密
21).优化了Performance Schema,其内存使用减少
22).Performance Schema引入了众多instrumentation。常用的有Memory usage instrumentation,可用来查看
MySQL的内存使用情况,Metadata Locking Instrumentation, 可用来查看MDL的持有情况,
Stage Progress instrumentation,可用来查看Online DDL的进度
23).同一触发事件(INSERT,DELETE,UPDATE),同一触发时间(BEFORE,AFTER),允许创建多个触发器
在此之前,只允许创建一个触发器
24).InnoDB原生支持分区表,在此之前,是通过ha_partition接口来实现的
25).分区表支持可传输表空间特性。
26).集成了SYS数据库,简化了MySQL的管理及异常问题的定位
27).原生支持JSON类型,并引入了众多JSON函数
28).引入了新的逻辑备份工具mysqlpump,支持表级别的多线程备份
29).引入了新的客户端工具mysqlsh,其支持三种语言:JavaScript, Python and SQL。两种API:X DevAPI,
AdminAPI,其中,前者可将MySQL作为文档型数据库进行操作,后者用于管理InnoDB Cluster
30).mysql_install_db被mysqld --initialize代替,用来进行实例的初始化
31).原生支持systemd
32).引入了super_read_only选项
33).可设置SELECT操作的超时时长(max_execution_time)
34).可通过SHUTDOWN命令关闭MySQL实例。
35).引入了innodb_deadlock_detect选项,在高并发场景下,可使用该选项来关闭死锁检测
36).引入了Optimizer Hints,可在语句级别控制优化器的行为,如是否开启ICP,MRR等,在此之前,只有Index Hints
37).GIS的增强,包括使用Boost.Geometry替代之前的GIS算法,InnoDB开始支持空间索引
MySQL8.0
1).引入了原生的,基于InnoDB的数据字典。数据字典表位于mysql库中,对用户不可见,同mysql库的其它系统表一样,
保存在数据目录下的mysql.ibd文件中。不再置于mysql目录下
2).重构了INFORMATION_SCHEMA,其中部分表已重构为基于数据字典的视图,在此之前,其为临时表
3).PERFORMANCE_SCHEMA查询性能提升,其已内置多个索引
4).支持不可见索引(Invisible index)
5).支持降序索引
6).优化器加入了直方图功能,对比Oracle
7).支持公用表表达式(Common table expressions)
8).支持窗口函数(Window functions)。
9).支持角色(Role)功能,对比Oracle
10).支持资源组(Resource Groups),可用来控制线程的优先级及其能使用的资源,目前,能被管理的资源只有CPU
11).引入了innodb_dedicated_server选项,可基于服务器的内存来动态设置innodb_buffer_pool_size,
innodb_log_file_size和innodb_flush_method
12).支持秒加字段(Instant add column)功能
13).JSON字段的部分更新(JSON Partial Updates)
14).支持自增主键的持久化
15).支持可持久化全局变量(SET PERSIST)
16).默认字符集由latin1修改为utf8mb4
17).默认开启UNDO表空间,且支持在线调整数量(innodb_undo_tablespaces)。在MySQL 5.7中,默认不开启,
若要开启,只能初始化时设置
18).支持备份锁
19).Redo Log的优化,包括允许多个用户线程并发写入log buffer,可动态修改innodb_log_buffer_size的大小
20).默认的认证插件由mysql_native_password更改为caching_sha2_password
21).默认的内存临时表由MEMORY引擎更改为TempTable引擎,相比于前者,后者支持以变长方式存储VARCHAR,
VARBINARY等变长字段。从MySQL 8.0.13开始,TempTable引擎支持BLOB字段
22).Grant不再隐式创建用户
23).SELECT ... FOR SHARE和SELECT ... FOR UPDATE语句中引入NOWAIT和SKIP LOCKED选项,解决电商场景热点行问题
24).正则表达式的增强,新增了4个相关函数,REGEXP_INSTR(),REGEXP_LIKE(),REGEXP_REPLACE(),
REGEXP_SUBSTR()
25).查询优化器在制定执行计划时,会考虑数据是否在Buffer Pool中。而在此之前,是假设数据都在磁盘中
26).ha_partition接口从代码层移除,如果要使用分区表,只能使用InnoDB存储引擎
27).引入了更多细粒度的权限来替代SUPER权限,现在授予SUPER权限会提示warning
28).GROUP BY语句不再隐式排序
29).information_schema中的innodb_locks和innodb_lock_waits表被移除,取而代之的是performance_schema中的
data_locks和data_lock_waits表
30).引入performance_schema.variables_info表,记录了参数的来源及修改情况
31).增加了对于客户端报错信息的统计(performance_schema.events_errors_summary_xxx)
32).可统计查询的响应时间分布(call sys.ps_statement_avg_latency_histogram())
33).支持直接修改列名(ALTER TABLE ... RENAME COLUMN old_name TO new_name)
34).用户密码可设置重试策略(Reuse Policy)
35).移除PASSWORD()函数。这就意味着无法通过“SET PASSWORD ... = PASSWORD('auth_string') ”命令修改用户密码
36).代码层移除Query Cache模块,故Query Cache相关的变量和操作均不再支持
37).BLOB, TEXT, GEOMETRY和JSON字段允许设置默认值
38).可通过RESTART命令重启MySQL实例
MySQL 5.6, 5.7, 8.0版本的新特性汇总大全的更多相关文章
- MySQL 8.0.2复制新特性(翻译)
译者:知数堂星耀队 MySQL 8.0.2复制新特性 MySQL 8 正在变得原来越好,而且这也在我们MySQL复制研发团队引起了一阵热潮.我们一直致力于全面提升MySQL复制,通过引入新的和一些有趣 ...
- (数据科学学习手札129)geopandas 0.10版本重要新特性一览
本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 就在前不久,我们非常熟悉的Python地理 ...
- (数据科学学习手札139)geopandas 0.11版本重要新特性一览
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,就在几天前,geopandas ...
- JDK各个版本的新特性jdk1.5-jdk8
JDK各个版本的新特性 对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言.今天先为大家介绍一 ...
- atitit.js 各版本 and 新特性跟浏览器支持报告
atitit.js 各版本 and 新特性跟浏览器支持报告 一个完整的JavaScript实现是由以下3个不同部分组成的 •核心(ECMAScript)--JavaScript的核心ECMAScrip ...
- JDK几个高版本的新特性
JDK 高版本的新特性 1.JDK5的新特性: 自动拆装箱 见Integer部分笔记 泛型 增强for循环 静态导入 可变参数 见集合部分笔记 枚举 是指将变量的值一一列出来,变量的值只限于列举出来的 ...
- Spring Boot 2.0正式发布,新特性解读
作者|翟永超 Spring Boot 2.0 来啦,有哪些新特性?升级吗? 写在前面 北京时间 3 月 1 日,经过漫长的等待之后,Spring Boot 2.0 正式发布.作为 Spring 生态中 ...
- JDK各个版本的新特性jdk1.5-jdk8[转]
JDK各个版本的新特性 对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言.今天先为大家介绍一 ...
- (数据科学学习手札73)盘点pandas 1.0.0中的新特性
本文对应脚本及数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 毫无疑问pandas已经成为基于Pytho ...
随机推荐
- VC.VS版本&VC版本&OpenCV版本
1.VS版本 与 VC版本 的对应关系,以及opencv 对 VC版本 的支持情况 - 魔法学徒 - CSDN博客.html(https://blog.csdn.net/yefcion/article ...
- vim bundle安装
一.准备工作 安装Git(因为下面我们选择的插件管理器需要使用到它)安装其他插件前首先需要选择一个Vim插件管理器,我这里选择的是Vundle,Vundle的工作过程中需要通过Git自动从远程创库同步 ...
- 使用kubeadm进行单master(single master)和高可用(HA)kubernetes集群部署
kubeadm部署k8s 使用kubeadm进行k8s的部署主要分为以下几个步骤: 环境预装: 主要安装docker.kubeadm等相关工具. 集群部署: 集群部署分为single master(单 ...
- SQLite进阶-19.常用函数
目录 SQLite常用函数 SQLite常用函数 SQLite 有许多内置函数用于处理字符串或数字数据. 序号 函数 & 描述 1 SQLite COUNT 函数SQLite COUNT 聚集 ...
- 【组成原理】BYTE ME!
题目描述 Parity is an important concept in data transmission. Because the process is not error proof, p ...
- 使用haystack实现django全文检索搜索引擎功能
前言 django是python语言的一个web框架,功能强大.配合一些插件可为web网站很方便地添加搜索功能. 搜索引擎使用whoosh,是一个纯python实现的全文搜索引擎,小巧简单. 中文搜索 ...
- 采样方法(二)MCMC相关算法介绍及代码实现
采样方法(二)MCMC相关算法介绍及代码实现 2017-12-30 15:32:14 Dark_Scope 阅读数 10509更多 分类专栏: 机器学习 版权声明:本文为博主原创文章,遵循CC 4 ...
- C++反汇编第四讲,认识多重继承,菱形继承的内存结构,以及反汇编中的表现形式.
目录: 1.多重继承在内存中的表现形式 多重继承在汇编中的表现形式 2.菱形继承 普通的菱形继承 虚继承 汇编中的表现形式 一丶多重继承在内存中的表现形式 高级代码: class Father1 { ...
- 作业10:String类
一.基本案例 1.new String("helloworld") 与 "helloworld" public static void main(String[ ...
- 在javascript对象内搜索,貌似是一个新鲜的话题。
为啥 也不为啥,因为没找到. 用途 也没啥用途,比如,在电影网站找到链接,在小说网站找到链接.二货同事写的复杂对象.等等吧.反正要搜索就对了. 目标 在对象内,无论多少层,找到关键字. 关键字可能的位 ...