一、当前主流的mysql的大版本

当前主流的mysql版本有 5.6、5.7、5.8

二、区别比对

(1)5.6对比5.5

1、可以修改未压缩表的 InnoDB 页大小设置为 8KB 或 4KB ,默认是 16KB
2、InnoDB 的 redo log 文件可存储的最大值从 4g 升到 512g
3、可以创建全文索引。
4、可以设置 innodb 压缩级别 , 级别等级为 0-9。
5、默认用独立的表空间 ibd
> `create table external (x int unsigned not null primary key)data directory = '/volumes/external1/data';`
6、新增参数innodb_page_size可以设置page大小。
7、整合了memcached API,可以使用API来直接访问innodb表,并非SQL(减少SQL解析、查询优化代价)。
8、Innodb 将 flush 刷盘操作从主线程移动到其他线程。
9、Undo Log 可以保存在独立的表空间。
10、最大分区数量增加到 8192

11、支持显示分区选择,如: SELECT * FROM t PARTITION (p0, p1) WHERE c < 5。

12、Mysql集群,在这个版本作为独立的产品发布,存储引擎不是默认的 innodb ,而是 NDB。

13、复制和日志记录,可以从远程服务器读取 binlog,延迟复制。

14、优化器增强,从5.6开始,可以用 EXPLAIN 来查看 DELETEINSERTREPLACEUPDATE等 DML 操作的执行计划。 在这之前,它只支持 SELECT 操作。优化了子查询和主机缓存。

15、统计信息持久化,mysqld重启后不丢失。

(2)5.7对比5.6

1、用户表 mysql.user 的 plugin字段不允许为空, 默认值是 mysql_native_password,而不是 mysql_old_password,不再支持旧密码格式。
2、增加密码过期机制,过期后需要修改密码,否则可能会被禁用,或者进入沙箱模式。
3、提供了更为简单SSL安全访问配置,并且默认连接就采用SSL的加密方式。
4、MySQL数据库从5.7.8版本开始,也提供了对JSON的支持。
5、可以混合存储结构化数据和非结构化数据,同时拥有关系型数据库和非关系型数据库的优点。
能够提供完整的事务支持。
6、generated column是MySQL 5.7引入的新特性,所谓generated column,就是数据库中这一列由其他列计算而得。
7、在MySQL 5.7 之前,如果用户输入了错误的SQL语句,按下 ctrl+c ,虽然能够”结束”SQL语句的运行,但是,也会退出当前会话,MySQL 5.7对这一违反直觉的地方进行了改进,不再退出会话。
8、MySQL 5.7可以explain一个正在运行的SQL,这对于DBA分析运行时间较长的语句将会非常有用。
9、sys schema是MySQL 5.7.7中引入的一个系统库,包含了一系列视图、函数和存储过程, 该项目专注于MySQL的易用性。例如:如何查看数据库中的冗余索引;如何获取未使用的索引;如何查看使用全表扫描的SQL语句。
10、在线设置 复制的过滤规则不再需要重启MySQL,只需要停止SQLthread,修改完成以后,启动SQLthread。
11、innodb_buffer_pool_size 参数是动态的,允许您在不重启服务器的情况下调整缓冲池的大小
12、Online DDL MySQL 5.7支持重命名索引和修改varchar的大小,这两项操作在之前的版本中,都需要重建索引或表。
13、在线开启GTID,在之前的版本中,由于不支持在线开启GTID,用户如果希望将低版本的数据库升级到支持GTID的数据库版本,需要先关闭数据库,再以GTID模式启动,所以导致升级起来特别麻烦。

14、支持多线程来刷新缓冲池中的脏页面,内存数据页跟磁盘上数据页内容不一致,将内存页称为脏页。

15、InnoDB 支持使用 spatial 索引来索引空间数据类型。

16、默认行格式由 compact 改为 DYNAMIC。

17、允许在某个时间点,有多个触发事件。之前:对于触发器事件(INSERT、UPDATE、DELETE)和操作时间(BEFORE、AFTER)的组合,一个表最多只能有一个触发器,即在某个触发时间点只能有一个触发事件。

18、可将多个服务器的内容备份到一个服务器。

(2)5.8对比5.7

1、新的系统字典表,整合了存储有关数据库对象信息的事务数据字典,所有的元数据都用InnoDB引擎进行存储。

2、安全和用户管理,新增caching_sha2_password认证插件,并且是默认的身份认证插件。性能和安全方面加强权限支持role,新增密码历史记录功能,限制重复使用以前的密码。

3、innodb 增强
a、新增INFORMATION_SCHEMA.INNODB_CACHED_INDEXES,查看每个索引缓存在InnoDB缓冲池中的索引页数。
b、InnoDB临时表都将在共享临时表空间ibtmp1中创建。
c、对于SELECT … FOR SHARE和SELECT … FOR UPDATE语句,InnoDB支持NOWAIT和SKIP LOCKED innodb_undo_tablespaces的最小值为2,并且不再允许将innodb_undo_tablespaces设置为0。最小值2确保回滚段始终在撤消表空间中创建,而不是在系统表空间中创建
支持 ALTER TABLESPACE … RENAME TO 语法。
d、新增INFORMATION_SCHEMA.INNODB_TABLESPACES_BRIEF视图。
e、新增了动态配置项 innodb_deadlock_detect,用来禁用死锁检查,因为在高并发系统中,当大量线程等待同一个锁时,死锁检查会大大拖慢数据库。
f、支持使用innodb_directories选项在服务器脱机时将表空间文件移动或恢复到新位置。
g、新增innodb_dedicated_server,让InnoDB根据服务器上检测到的内存量自动配置innodb_buffer_pool_size,innodb_log_file_size,innodb_flush_method。当innodb_dedicated_server启用时,InnoDB根据服务器上检测到的内存量自动配置以下选项:innodb_dedicated_server:自动配置缓冲池大小;innodb_log_file_size:自动配置的日志文件大小;innodb_flush_method:O_DIRECT_NO_FSYNC。
h、MySQL 8.0更好支持文档型数据库和JSON。
i、不可见索引,开始支持invisible index,在优化SQL的过程中可以设置索引为不可见,优化器不会利用不可见索引。
j、支持降序索引,可以对索引定义 DESC,之前,索引可以被反序扫描,但影响性能,而降序索引就可以高效的完成支持RANK(), LAG()、NTILE()等函数。
k、正则表达式增强,提供了REGEXP_LIKE(),EGEXP_INSTR(), REGEXP_REPLACE(), REGEXP_SUBSTR()等函数。
l、新增备份锁,允许在线备份期间的DML,同时防止可能导致快照不一致的操作。 备份锁由LOCK INSTANCE FOR BACKUP和UNLOCK INSTANCE语法支持
m、默认字符集由latin1变为utf8mb4。

4、配置文件增强
MySQL 8.0版本支持在线修改全局参数持久化,通过加上PERSIST关键字,可以将调整持久化到新的配置文件中,再次重启db还可以应用到最新的参数。对于加上 PERSIST 关键字修改参数命令,MySQL系统会生成一个包含json格式数据的 mysqld-auto.cnf 文件,比如执行:
set PERSIST binlog_expire_logs_seconds = 604800 ; #内存和json文件都修改,重启还生效
set GLOBAL binlog_expire_logs_seconds = 604800 ; #只修改内存,重启丢失
系统会在数据目录下生成一个包含如下内容的 mysqld-auto.cnf 的文件:
{ “mysql_server”: {" binlog_expire_logs_seconds ": “604800” } }
当 my.cnf 和 mysqld-auto.cnf 同时存在时,后者具有高优先级。

5、InnoDB性能提升
废除buffer pool mutex, 将原来一个mutex拆分成多个,提高并发拆分LOCK_thd_list 和 LOCK_thd_remove 这两个mutex,大约可提高线程链接效率5%。

6、行缓存
MySQL8.0的优化器可以估算将要读取的行数,因此可以提供给存储引擎一个合适大小的row buffer来存储需要的数据。大批量的连续数据扫描的性能将受益于更大的record buffer。
7、改进扫描性能
改进InnoDB范围查询的性能,可提升全表查询和范围查询 5-20%的性能。

8、优化器增强,支持隐藏索引。

Mysql各个大版本之间的区别相关推荐

  1. [51CTO]给您介绍Windows10各大版本之间区别

    给您介绍Windows10各大版本之间区别 随着win10的不断普及和推广,越来越多的朋友想安装win10系统了,但是很多朋友不知道win10哪个版本好用,为了让大家能够更好的选择win10系统版本, ...

  2. 数据中心、云计算、大数据之间的区别与联系

    数据中心不同于大数据和云计算,很多人容易把三者混淆或者认为是同样东西,其实三者有本质的不同.数据中心机房是一整套复杂的设施,如今,云计算即将成为信息社会的公共资源,而数据中心则是支撑云计算服务的基础设 ...

  3. win10下c语言哪个版本号,怎么查看我的电脑用的是win10的哪个版本?win10各版本之间的区别...

    有时候我们会需要进行查看电脑上安装的windows系统版本及系统版本号,但如果不知道该怎样查看的话该怎么办呢?特别是WIN10系统有很多版本,下面分享一下如何查看win10版本号. win10版本号如 ...

  4. 初识python——python的发展历程及python各个版本之间的区别,python的安装

    初识python--python的发展历程及python各个版本之间的区别,python的安装 什么是python python的起源 python主要发展历程 python各个版本之间的区别 如何选 ...

  5. 【重难点】【计算机网络 02】TCP 和 UDP 的区别、TCP 的三次握手和四次挥手、HTTP 和 HTTPS、HTTP 各版本之间的区别、HTTP 如何实现长连接

    [重难点][计算机网络 02]TCP 和 UDP 的区别.TCP 的三次握手和四次挥手.HTTP 和 HTTPS.HTTP 各版本之间的区别.HTTP 如何实现长连接 文章目录 [重难点][计算机网络 ...

  6. Win7各个版本之间的区别

    Windows7包含6个版本,分别为Windows7 Starter(初级版).Windows7 Home Basic(家庭普通版).Windows7 Home Premium(家庭高级版).Wind ...

  7. Python 应用领域以及版本之间的区别

    Python 应用领域以及版本之间的区别 一.Python应用领域 Python+人工智能,给你更多研究方向选择! 企业级综合实战项目,集六大前沿技术为一体 二. Python 2与Python 3的 ...

  8. SQL server 2000 标准版、企业版、开发版、个人版各版本之间的区别

    SQL server 2000 标准版.企业版.开发版.个人版各版本之间的区别 企业版提供了最多的功能特性和最佳的性能,适用于大规模的企业生产应用环境. 标准版的功能相对少一些,比较适合于中小规模的企 ...

  9. python3各版本区别-Python各版本之间的区别

    Python各版本之间的区别 发布时间:2020-06-17 14:22:08 来源:亿速云 阅读:148 作者:鸽子 Python发展至今有哪些版本和各版本的区别是: 一.系统区别: 1.Downl ...

  10. java哨片红盒 绿盒的区别_海淘维骨力怎么区分红盒,绿盒,蓝盒版本之间的区别...

    展开全部 一.维骨力红盒,绿盒,蓝盒版本之间的区别: 1.组成成分不同: 红盒:盐酸氨基葡32313133353236313431303231363533e59b9ee7ad9431333433626 ...

最新文章

  1. 三种单例模式的C++实现
  2. 采集练习(七) php 获得电视节目预告(一周节目)
  3. Android 系统(159)----MTK 平台过CTA时,发生权限未明示问题
  4. 公众号下载资源汇总(一)
  5. 4.串口操作之API篇 CreateFile
  6. 平面一般力系最多可以求解_利用平面一般力系的平衡方程最多可求解几个未知量。( )...
  7. livereload_使用LiveReload节省编码时间和精力
  8. Adobe Bridge使用教程:BR键盘快捷键大全
  9. G盘格式化了,要怎样恢复文件
  10. win10系统还原失败错误0x80070091的解决方法
  11. Linux下菜鸟用XMMS(转)
  12. PMP就是个垃圾证书,YES or NO
  13. Typecho博客评论生成随机用户头像
  14. ios 判断手机角度_iOS 角度获取及旋转
  15. ICO、STO、IEO
  16. 信息学奥赛一本通C++语言——1097:画矩形
  17. 前端工程师需要哪些技能?
  18. 微信小程序表单字符串转数组
  19. 基于SAE特征融合的合成孔径雷达图像的目标识别
  20. ubuntu rust_如何在Ubuntu Linux上安装Rust

热门文章

  1. 2018中国企业云计算应用现状及需求调研报告
  2. DEP和ASLR的原理与破解
  3. 【openGL2021版】obj模型
  4. 【exp-linux】用aplay直接播放音频文件(mp3,wav)
  5. 计算机需要无线网卡进行网络连,usb无线网卡怎么用详细步骤
  6. [iOS]在xib中设置YYLabel自适应高度
  7. php字符串分割函数,PHP字符串分割函数explode,strtok,str_split的用法
  8. 三维点云处理(深度学习方法)综述
  9. IOS逆向-静态分析
  10. Excel统一将小写的金额转为大写汉字金额的操作