MySQL作为一个关系型数据库管理系统,在数据处理方面有其独特的优势。MySQL软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,使得MySQL占据了关系型数据库管理系统软件的半壁江山。MySQL版本也经过数次更迭,MySQL领域存在着众多的衍生版数据库,主流的有官方Mysql,MariaDb,Percona Server。各个版本在主要功能的支持上大体相同,各自内部具体实现方式会有区别。下面我们就来看看3个主流MySQL版本特性。

其实我们在MySQL的官方网站上,很容易查到这些资料,我们参考MySQL官方文档手册,主要记录下与开发相关的特性,如果要查询完整特性,可以查看最后记录的官方说明文档。我们主要讲的是MySQL使用最多的3个主流版本,分别为5.6版本,5.7版本和8.0版本。

一、5.6版本MySQL特性

1.InnoDb 开始支持全文索引

2.InnoDb 支持设置页面大小

3.通过innodb_page_size 指定,默认是16KB,

4.对于工作负载和存储设备(尤其是具有小块大小的SSD设备)的 某些组合,较小的页面大小可以帮助避免冗余或低效的I / O

5.InnoDB redolog总大小的限制从之前的4G扩展至512G

6.InnoDB现在可以限制大量表打开的时候内存占用过多的问题

7.InnoDB性能加强。如分拆kernel mutex;flush操作从主线程分离;多个perge线程;大内存优化等

8.InnoDB死锁信息可以记录到 error 日志,方便分析

9.优化器性能提升,引入了ICP,MRR,BKA等特性,针对子查询进行了优化

10.Undo Log可保存在独立表空间中,因其是随机IO,更适合放到SSD中。但仍然不支持空间的自动回收

11.支持Online DDL。ALTER操作不再阻塞DML

12.MySQL现在支持延迟复制,以便从属服务器故意落后于主服务器至少指定的时间量。默认延迟为0秒

二、5.7版本MySQL特性

1.支持组复制和InnoDB Cluster

2.支持多源复制

3.支持在线修改Buffer pool的大小

4.支持UNDO表空间的自动回收

5.查询优化器的增强与重构,提升性能

6.可查看当前session正在执行的SQL的执行计划(EXPLAIN FOR CONNECTION)

7.优化了Performance Schema,其内存使用减少

8.原生支持JSON类型,并引入了众多JSON函数

9.可设置SELECT操作的超时时长(max_execution_time)

10.引入了innodb_deadlock_detect选项,在高并发场景下,可使用该选项来关闭死锁检测

11.GIS的增强,包括使用Boost.Geometry替代之前的GIS算法,InnoDB开始支持空间索引

三、8.0版本MySQL特性

1.提高性能:官宣比5.7快2倍

2.PERFORMANCE_SCHEMA查询性能提升,其已内置多个索引

3.支持不可见索引(Invisible index)

4.支持降序索引

5.引入了innodb_dedicated_server选项,可基于服务器的内存来动态设置innodb_buffer_pool_size,innodb_log_file_size和innodb_flush_method

6.支持秒加字段(Instant add column)功能

7.JSON字段的部分更新(JSON Partial Updates)

8.支持自增主键的持久化

9.默认字符集由latin1修改为utf8mb4

10.默认开启UNDO表空间,且支持在线调整数量(innodb_undo_tablespaces)。

11.正则表达式的增强,新增了4个相关函数,REGEXP_INSTR(),REGEXP_LIKE(),REGEXP_REPLACE(),REGEXP_SUBSTR()

12.查询优化器在制定执行计划时,会考虑数据是否在Buffer Pool中。而在此之前,是假设数据都在磁盘中

13.GROUP BY语句不再隐式排序

14.增加了对于客户端报错信息的统计(performance_schema.events_errors_summary_xxx)

15.BLOB, TEXT, GEOMETRY和JSON字段允许设置默认值

之所以重点讲述这3个版本MySQL数据库特性,是因为这3个版本是用户数量最多,也是MySQL数据库的性能最好的3个版本,了解这些常用版本的MySQL数据库特性,能够帮助我们熟练掌握MySQL数据库。在本站的MySQL教程中,还有许多你不曾了解过的MySQL知识,快打开链接开始学习吧!

mysql主流使用版本_简述3个主流MySQL版本特性相关推荐

  1. c语言连接数据库例子,c语言操作mysql数据库小例子_互帮互助(C language MySQL database operation example _ mutual help).doc...

    这是精心收集的精品经典资料,值得下载保存阅读! c语言操作mysql数据库小例子_互帮互助(C language MySQL database operation example _ mutual h ...

  2. 查看Python的版本_查看当前安装Python的版本

    一.查看Python的版本_查看当前安装Python的版本 具体方法: 首先按[win+r]组合键打开运行: 然后输入cmd,点击[确定]: 最后执行[python --version]命令即可. 特 ...

  3. mysql入门视频 吾_学习猿地-全网最新版本MySQL8全套视频教程(学完这个课 MySQL 就精通了)...

    课程目录: 1.1.认识MySQL+ J" A7 q: A1 j9 `( O; } 2.1.认识MySQL.size 3.2.安装配置MySQL 4.2.安装配置MySQL.size 5.3 ...

  4. mysql 存储引擎 面试_搞定PHP面试 - MySQL基础知识点整理 - 存储引擎

    MySQL基础知识点整理 - 存储引擎 0. 查看 MySQL 支持的存储引擎 可以在 mysql 客户端中,使用 show engines; 命令可以查看MySQL支持的引擎: mysql> ...

  5. mysql 2003报错_为什么不建议在 MySQL 中使用 UTF-8?

    正文 记得去年我在往MySQL存入emoji表情 时,一直出错,无法导入.后来找到办法 -- 通过把 utf8 改成 utf8mb4 就可以了,并没有深究. 一年后,我看到一篇文章讲到emoji文字占 ...

  6. mysql unicode转汉字_如果有人问你 MySql 怎么存取 Emoji,把这篇文章扔给他

    01.前言 Emoji 在我们生活中真的是越来越常见了,几乎每次发消息的时候不带个 Emoji,总觉得少了点什么,似乎干巴巴的文字已经无法承载我们丰富的感情了.对于我们开发者来说,如何将 Emoji ...

  7. c 对一个mysql数据库进行操作_用C语言操作MySQL数据库

    函数 描述 mysql_affected_rows() 返回上次UPDATE.DELETE或INSERT查询更改/删除/插入的行数. mysql_autocommit() 切换autocommit模式 ...

  8. mysql超长sql查询_超长SQL怎么查询?MySQL列长度限制有哪些 | 学步园

    MySQL字符串的限制长度看似重要性不要,其实和整个MySQL数据库的安全性是息息相关的,很值得我们去深入研究分析.SQL注入攻击一直都在被广泛的讨论,然而人们却忽略了今天我将要介绍的这两个安全隐患, ...

  9. 系统崩溃mysql怎么保存表_第09问:MySQL 莫名崩溃,如何保留现场?

    问题 我的 MySQL 偶尔崩溃,如果需要追查原因,应该如何保留现场? 实验 MySQL 随着版本不停迭代,崩溃的现象越来越少,也越来越隐蔽. 一旦遇到生产环境上的 MySQL 崩溃,就需要保留现场信 ...

最新文章

  1. SimNIBS一款无创脑刺激仿真软件安装
  2. VC++使用MCI播放音频文件
  3. C中out型参数的使用介绍
  4. Flask的jinja输出json内容
  5. 静止的人如何看待高速运动的球?
  6. Replace Type Code with State/Strategy(以State/Strategy取代类型码)
  7. qt下实现文件的拖拽打开
  8. 公众号文章折叠点击后展开案例_(案例)蜂窝纸板在包装中的应用重型箱
  9. java反编译 mac_java反编译工具Mac版-jd-gui for Mac下载 V1.6.6-PC6苹果网
  10. 74LS 系列 名称解释
  11. 抖音协议、火山小视频通信协议加密算法研究分析
  12. 【区块链开发指南】序言
  13. netcore读取json文件_.Net Core读取Json配置文件的实现示例
  14. 【开源】发布一个软件“WeNote 微便签”,比系统自带的便笺好用,每个便签可独立设倒计时
  15. RGB颜色值与十六进制颜色码对照表
  16. java 手动触发gc_java触发full gc的几种情况整理
  17. 微信小程序 java多商家多用户网上商城购物系统#计算机毕业设计
  18. Ubuntu 通过mentohust 锐捷连接校园网
  19. 移动端浏览器沉浸式导航
  20. jquery怎么实现点击刷新当前页面

热门文章

  1. 顺德美食攻略###打假###
  2. 机器学习算法工程师面试总结
  3. $timeformat、$time、$realtime用法
  4. MYSQL log_error_verbosity 和 Binlog_error_action
  5. SDK 和 API 的区别
  6. 开源office_3种Office 365开源替代品
  7. 关于洛谷p5705的解法c语言
  8. 手把手教你制作车载DVD音乐光盘
  9. dbeaver mock data generator (数据库模拟数据生成)
  10. php实战开发电商后台视频教程 共6章