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知识,快打开链接开始学习吧!
索引是一种特殊的文件(InnoDB 数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。索引不是万能的,索引可以加快数据检索操作,但会使数据修改操作变慢。每修改数据记录,索引就必须刷新一次。为了在某种程度上弥补这一缺陷,许多 SQL 命令都有一个 DELAY_KEY_WRITE 项。这个选项的作用是暂时制止 MySQL 在该命令每
MySQL作为一个关系型数据库管理系统,在数据处理方面有其独特的优势。MySQL软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,使得MySQL占据了关系型数据库管理系统软件的半壁江山。MySQL版本也经过数次更迭,MySQL领域存在着众多的衍生版数据库,主流的有官方Mysql,MariaDb,Perco
MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型)。那么,MySQL数据库都有哪些存储引擎呢?下面
众所周知,MySQL是目前世界上最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。我们不得不承认,MySQL能够取得如今的成绩离不开MySQL开源的特点,在MySQL的崛起进程中,众多的使用者和开发者贡献了自己的一
Docker 是一个基于 Go 语言 并遵从 Apache2.0 协议开源的应用容器引擎,让开发者可以打包应用到一个可移植的镜像中
Java SE(Java Platform, Standard Edition,Java标准版),基础进阶
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目
IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境,它所提倡的是智能编码,是减少程序员的工作
jQuery是一个快速、简洁的JavaScript框架
Java SE(Java Platform, Standard Edition,Java标准版),零基础入门
动力节点在线报名表(此信息已加密,请放心填写)