转自: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实例

【0.4】mysql版本特性(5.6-8.0)【转】的更多相关文章

  1. 为什么说JAVA中要慎重使用继承 C# 语言历史版本特性(C# 1.0到C# 8.0汇总) SQL Server事务 事务日志 SQL Server 锁详解 软件架构之 23种设计模式 Oracle与Sqlserver:Order by NULL值介绍 asp.net MVC漏油配置总结

    为什么说JAVA中要慎重使用继承   这篇文章的主题并非鼓励不使用继承,而是仅从使用继承带来的问题出发,讨论继承机制不太好的地方,从而在使用时慎重选择,避开可能遇到的坑. JAVA中使用到继承就会有两 ...

  2. C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新) C#各版本新特性 C#版本和.NET版本以及VS版本的对应关系

    C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新) 2017年08月06日 11:53:13 阅读数:6705 历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有1 ...

  3. C# 语言历史版本特性(C# 1.0到C# 8.0汇总)

    历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有17年的历史,语言本身具有丰富的特性,微软对其更新支持也十分支持.微软将C#提交给标准组织ECMA,C# 5.0目前是ECM ...

  4. C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新)

    历史版本C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有17年的历史,语言本身具有丰富的特性,微软对其更新支持也十分支持.微软将C#提交给标准组织ECMA,C# 5.0目前是ECMA ...

  5. [转]C# 语言历史版本特性(C# 1.0到C# 8.0汇总)

    历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有17年的历史,语言本身具有丰富的特性,微软对其更新支持也十分支持.微软将C#提交给标准组织ECMA,C# 5.0目前是ECM ...

  6. 【JAVA各版本特性】JAVA 1.0 - JAVA 12

    make JDK Version 1.01996-01-23 Oak(橡树) 初代版本,伟大的一个里程碑,但是是纯解释运行,使用外挂JIT,性能比较差,运行速度慢. JDK Version 1.119 ...

  7. HBase版本进化史及大版本特性

    HBase 2.0 新特性介绍 2018年4月30日HBase发布了2.0的Release版本.HBase的2.0版本承载了太多的Features,共包含4551个Issues,可以说是迄今最大的一个 ...

  8. 自定义ActionBar背景(分别针对3.0以下和3.0以上的版本)

    官方原文:http://developer.android.com/training/basics/actionbar/styling.html 针对3.0以上的版本: <?xml versio ...

  9. MySQL 8.0.2复制新特性(翻译)

    译者:知数堂星耀队 MySQL 8.0.2复制新特性 MySQL 8 正在变得原来越好,而且这也在我们MySQL复制研发团队引起了一阵热潮.我们一直致力于全面提升MySQL复制,通过引入新的和一些有趣 ...

随机推荐

  1. C#+Entity Frame work+MVC+Mysql+Apicloud共享汽车管理系统【论文】+Apicloud开发实例

    摘要: 共享汽车管理系统主要分为后台管理PC端和手机App端,后台管理可以对指定停车点.车辆基本信息.用户注册信息.用户订单信息.推送消息进行管理和维护,而手机app用户可以通过手机号进行短信注册,根 ...

  2. Java中jdk代理和cglib代理

    代理模式 给某一个对象提供一个代理,并由代理对象控制对原对象的引用.在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 在Java中代理模式从实 ...

  3. Mybatis源码学习之反射工具(三)

    简述 MyBatis在进行参数处理.结果映射等操作时,会涉及大量的反射操作.Java中的反射虽然功能强大,但是代码编写起来比较复杂且容易出错,为了简化反射操作的相关代码,MyBatis提供了专门的反射 ...

  4. HDU 4496 D-City —— (并查集的应用)

    给出n个点和m条边,一条一条地删除边,问每次删除以后有多少个联通块. 分析:其实就是并查集的应用,只是前一阵子一直做图论思路一直囿于tarjan了..方法就是,记录每一条边,然后从最后一条边开始不断的 ...

  5. JavaScript设计模式—装饰器模式

    装饰器模式介绍 为对象添加新的功能,不改变其原有的结构和功能,原有的功能还是可以使用,跟适配器模式不一样,适配器模式原有的已经不能使用了,装饰器示例比如手机壳 UML类图和代码示例 Circle示原来 ...

  6. SPOJ AMR12B 720

    这个题应该是个优先队列的模版题 当时比赛的时候没时间做先贴一下大神的代码好好学习学习 B - Gandalf vs the Balrog Time Limit:2000MS     Memory Li ...

  7. 第11组 Alpha冲刺(1/6)

    队名 不知道叫什么团队 组长博客 组长博客 作业博客 https://edu.cnblogs.com/campus/fzu/SE_FZU_1917_K/homework/9938 项目情况 燃尽图 陈 ...

  8. nginx 部署前端项目(vue)

    前提:安装好nginx 打开nginx目录,一般是(/usr/local/nginx) npm run build 打好vue包 一般放到(/usr/local/nginx/html/)目录下 配置: ...

  9. Android__adb 命令大全

    ADB 即 Android Debug Bridge,Android调试桥.ADB工作方式比较特殊,采用监听Socket TCP 端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的 ...

  10. How to use reminder feature of the outlook

    https://support.office.com/en-us/article/set-or-remove-reminders-7a992377-ca93-4ddd-a711-851ef359792 ...