安全的提升
1.1 在Mysql 8版本中,caching_sha2_password 是一个缺省的认证插见.5.7 版本的客户端支持 caching_sha2_password 的客户端认证。
1.2 用户表mysql.user要求plugin字段非空,且默认值是mysql_native_password,并且不再支持mysql_old_password
1.3 增加了密码过期特性。
1.4 管理员可以对普通用户加锁/解锁来控制用户的访问权限
1.5 为更容易支持安全连接,使用OpenSSL编译的MySQL服务器可以在启动时自动生成SSL和RSA证书以及密钥文件
1.6 使用 mysqld --initialize 代替 mysql_install_db 对数据库进行初始化。a 只创建一个 root账号,并且生成一个临时的标记为过期密码 b 不创建其他账号 c 不创建test 数据库 SQL mode的变换
2.1 默认的SQL_MODE:ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, and NO_ENGINE_SUBSTITUTION.a  语句:SELECT deptno,ename,max(sal) FROM emp GROUP BY deptno; 在mysql5.6中可以正常执行,但在mysql5.7中会报语义异常。观察发现:ename 即不在聚集函数中,也没有出现在group by list中。对于语义限制比较严谨的数据库,如Oracle是不支持select target list中出现语义不明确的列,这样的语句在这些数据库中是会被报错的,这也是SQL92的标准。所以从MySQL 5.7版本开始修正了这个语义,就是我们所说的ONLY_FULL_GROUP_BY语义。      b   STRICT_TRANS_TABLES 是说要存储的字段的长度大于字段定义的大小,直接报错而非像5.6版本以及之前,截断数据进行存储,同时抛出一个warning
2.2 online ddl 支持 rename index name。更改是以 in place方式进行的,不会伴随table-copy的操作。
2.3 新增内置的full text 插件,支持中文 ,韩文,日文全文索引

InnoDB 功能的增强
3.1 以 in-place 方式动态修改 varchar 长度大小。但存在限制,即表示 varchar 列长的字节不能变化。(专门存在一或两个字节记录 varchar 列的长度。varchar列的长度在0-255字节长度时,只需要一个字节记录 varchar 列的长度;varchar列的长度超过255字节长度时,需要两个字节记录 varchar 列的长度。)如果字段的长度从254增到256时就不能使用in-place算法,必须使用copy算法,否侧报错.需要注意的是 减小 varchar(N)长度的大小必须使用copy类型。
3.2 临时表通过对CREATE TABLE, DROP TABLE, TRUNCATE TABLE, and ALTER TABLE 语句的优化, 提升了涉及临时表的DDL语句的性能。临时表的元数据信息不再存储 InnoDB 系统表中,而是记录到新表 INNODB_TEMP_TABLE_INFO中。
3.3 临时表空间新增一个独立的表空间用来存储非压缩的临时表。Mysql启动时,这个临时表空间会被自动创建。可以通过innodb_temp_data_file_path定义临时表空间的路径。
3.4 新增临时表的undo日志针对临时表及相关对象引入新的 non-redo undo log,存放在临时表空间。该类型的undo log非 redolog, 因为临时表在数据库崩溃后不需要恢复,也就无需redo logs,避免了写relog相关的io,从而提高了性能。
3.5 新增空间类型 DATA_GEOMETRYInnoDB 现在支持  MySQL-supported 空间数据库类型。之前版本,InnoDB使用binary BLOB 类型存储空间类型数据。现在空间数据类型被映射到了一个InnoDB内部数据类型DATA_GEOMETRY.
3.6 innochecksum 功能被提升innochecksum--离线的InnoDB文件校验工具,新增了新的选择项和扩展的功能
3.7 对Fusion-io NVM 文件系统的优化Linux系统中Fusion-io Non-Volatile Memory (NVM)文件系统提供了原子写能力,使InnoDB的doublewrite变得冗余。因此,如果Fusion-io设备支持原子写, MySQL系统会自动关闭doublewrite,减少IO,提升性能。
3.8 支持移动表空间 Transportable Tablespace 简化了分区表的备份过程,并支持在MySQL实例之间复制分区表和单个表分区。
3.9 支持动态调整 innodb_buffer_pool_size 支持在不重启系统的情况下动态调整innodb_buffer_pool_size。resize的过程是以chunk为单位迁移pages到新的内存空间。chunk的大小可通过innodb_buffer_pool_chunk_size配置。迁移进度可以通过Innodb_buffer_pool_resize_status 查看。
3.10 InnoDB在创建或重建索引时执行批量加载。这种创建索引的方法称为“sorted index build”。这种增强也适用于全文索引,它提高了索引创建的效率。在排序索引构建期间,innodb_fill_factor定义了每个页面上的空间百分比是用来填充数据的,剩余空间预留给未来索引增长
3.11 新增一个新的日志记录类型(MLOG_FILE_NAME)用于标识自上次检查点以来被修改的表空间。这个增强简化了表空间的恢复。
3.12 支持truncate undo logs,相关启用参数 innodb_undo_log_truncate
3.13 支持本地分区。在之前版本中,InnoDB 依赖 ha_partition handler,它会为每一个分区创建一个 handler 对象。对于本地分区,InnoDB分区表只是用一个单独的 partition-aware handler 对象。这样的分区表功能增强节约分区表使用的内存。
3.14 支持 General Tablespaces。可以在MySQL数据目录之外创建,能够容纳多个表,支持所有行格式的表
3.15 InnoDB表的隐式默认行格式为DYNAMIC。相关参数 innodb_default_row_format
3.16 MySQL 5.7.11 开始,InnoDB支持file-per-table表空间的静态数据加密支持JSON类型MySQL 5.7.8开始支持本地化JSON类型。JSON值不是以string类型存储的,而是以内部的binary格式存储,有利于快速读取。    MySQL 5.7.8开始提供了一些与JSON相关的函数:Functions that create JSON values: JSON_ARRAY(), JSON_MERGE(), and JSON_OBJECT(). Functions that search JSON values: JSON_CONTAINS(), JSON_CONTAINS_PATH(), JSON_EXTRACT(), JSON_KEYS(), and JSON_SEARCH(). Functions that modify JSON values: JSON_APPEND(), JSON_ARRAY_APPEND(), JSON_ARRAY_INSERT(), JSON_INSERT(), JSON_QUOTE(), JSON_REMOVE(), JSON_REPLACE(), JSON_SET(), and JSON_UNQUOTE(). Functions that provide information about JSON values: JSON_DEPTH(), JSON_LENGTH(), JSON_TYPE(), and JSON_VALID().sys schemaMySQL 5.7 新增加了sys schema,sys schema方便性能调优和问题定位。OptimizerEXPLAIN 可以通过指定会话id 获取该会话执行sql的执行计划。增强了hint的功能TriggersMysql 5.7之前版本,对于触发器事件(INSERT, UPDATE, DELETE)和操作时间(BEFORE, AFTER)的组合,表最多只能有一个触发器。这个限制已经解除,允许多个触发器。LoggingMysql 5.7之前版本,在Unix和类Unix系统上,MySQL将错误日志发送到syslog是通过mysqld_safe捕获错误输出然后传递到syslog来实现的。新的版本支持将错误日志输出到syslog,且适用于windows系统,只需要通过简单的参数(log_syslog等)配置即可Mysql客户端现在有一参数--syslog ,该参数可将在交互式模式下执行过的命令输出到syslog中。对于匹配“ignore”过滤规则(可通过 –histignore选项或者 MYSQL_HISTIGNORE环境变量进行设置)的语句不会被记入Generated Columns在MySQL 5.7中,支持两种Generated Column,1 Virtual Generated Column :只将Generated Column保存在数据字典中表的元数据,每次读取该列时进行计算,并不会将这一列数据持久化到磁盘上;注意:MySQL 5.7.8 以前 虚拟列字段不支持创建索引。5.7.8之后Innodb支持在虚拟列创建辅助索引。2 Stored Generated Column : 将Column持久化到存储,会占用一定的存储空间。与Virtual Column相比并没有明显的优势,因此,MySQL 5.7中,不指定Generated Column的类型,默认是Virtual Column。       Index condition pushdown support for partitioned tables在MySQL 5.7中,分区表也开始支持ICP特性Master dump thread improvements在MySQL 5.7.2之前,转储线程在每次读取事件时都对二进制日志进行锁定;在MySQL 5.7.2或更高版本中,只有在最后一次成功写入事件结束时读取位置时才持有此锁。

MySql 5.7 新特性概览相关推荐

  1. MySQL 8.0新特性--CTE Recurive(二)

    上一篇介绍了CTE的基本用法,参考MySQL 8.0新特性--CTE(一),本篇再来介绍一下CTE Recurive递归. 1.什么是CTE Recurive? A recursive common ...

  2. SCCM 2012系列之新特性概览一:SCCM 2012安装选项和控制台新界面预览

    SCCM 2012系列之新特性概览一:SCCM 2012安装选项和控制台新界面预览. 众所周知,System Center Configuration Manager 2007(之前版本有SMS200 ...

  3. mysql8.0创建属性,MySQL 8.0新特性 — 管理端口的使用简介

    前言 下面这个报错,相信大多数童鞋都遇见过:那么碰到这个问题,我们应该怎么办呢?在MySQL 5.7及之前版本,出现"too many connection"报错,超级用户root ...

  4. C# 8.0 的新特性概览和讲解

    本文转自 https://blog.csdn.net/hez2010/article/details/84036742 C# 8.0 的新特性概览和讲解 前言 新的改变 可空引用类型(Nullable ...

  5. ES6、 ES7、 ES8、 ES9、 ES10 新特性概览

    传送门:ES11.ES12.ES13 新特性概览 ES全称ECMAScript,ECMAScript是ECMA制定的标准化脚本语言.目前JavaScript使用的ECMAScript版本为ECMA-4 ...

  6. C++20新特性概览

    文章目录 C++20新特性概览 C++20的重要性 侧面说明: 正面说明: 模块(Modules) 优点 例子 创建模块 引用模块 范围库(Ranges) Ranges 是什么 ? 好处: 相关概念 ...

  7. mysql3819错误,MySQL 8.0新特性 ― 检查性约束的使用简介

    前言 在MySQL 8.0版本中,引入了一个非常有用的新特性 ― 检查性约束,它可以提高对非法或不合理数据写入的控制能力:接下来我们就来详细了解一下. 检查性约束 创建.删除与查看 (1)可以在建表时 ...

  8. MySQL 5.7 新特性解读

    2015年10月22日,MySQL发布5.7.9稳定版,虽然MySQL官方手册里已经有很多关于MySQL 5.7新特性的介绍,在这里,还是让我们一起看看在MySQL 5.7里有哪些值得我们关注的新特性 ...

  9. 【MySQL】MySQL 5.7 新特性整理

    MySQL 5.7 新特性有很多,有以下这些 一.InnoDB变更 默认存储引擎改为InnoDB:MySQL 5.7将默认存储引擎改为InnoDB,以推动其成为事实标准.这意味着任何未指定存储引擎的表 ...

最新文章

  1. mysql64如何配置_win7 64位下如何安装配置mysql-winx64(安装记录)
  2. 2021年大数据常用语言Scala(二十):函数式编程 介绍
  3. 教你如何运用golang 实现数组的随机排序
  4. JS遮罩插件 -- JqLoad
  5. poj 1018 Communication System
  6. Zookeeper的简介及命令行操作
  7. java bitset_Java BitSet nextClearBit()方法与示例
  8. 十大经典算法_家庭用电预测:线性回归算法(时间与功率功率与电流之间的关系)
  9. ionic引用自定义html,pipe - Ionic 4自定义管道可以在app.component.html中正常工作,但不能在其他.html页面上工作(在.ts文件下工作) - 堆栈内存溢出...
  10. 如何简单描述java中的代理模式
  11. 概率逗号分号_分号的用法 和逗号的区别
  12. 恭喜马斯克、纳德拉当选美国工程院院士,张宏江、方岱宁入选外籍院士
  13. 小米OJ12月常规赛“数数字”题目详解与SG函数SG定理个人理解
  14. SWMM WARNING警告02、03、04的检查修改
  15. Google 搜素技巧
  16. ccd摄像机基础知识
  17. sb3500_您的代码如何在3500万人的家庭中成为社会公益的代言人
  18. wifi信号增强android,wifi信号增强器下载安装
  19. 360㎡现代轻奢别墅,感受典雅与时代的融合。
  20. Android优秀文章收集(转载)

热门文章

  1. linux32内核下载rpm,Vivaldi TP4 for Linux Rpm (32bit)
  2. 在你休息时,你的大脑运动皮层中重放习得的神经放电序列
  3. ARZIO让AR应用制作变得更简单
  4. JAVA实现斐波那契数列问题(《剑指offer》)
  5. 服务器上安装n点虚拟主机,N点虚拟主机管理系统之①-运行N点
  6. 把宝可梦搬到终端后,摸鱼也不会被老板发现了,收集对战玩法一应俱全|开源...
  7. 陈十一院士旗下国产CAE软件开发商获数亿元融资,产品技术已有应用成果
  8. 人人可用的AI大模型来了,“玩”TA还有奖金拿
  9. Siri和Alexa背后的女科学家逝世,是她让AI有了女声
  10. 马斯克成功把人从太空送回地球!历时64天,SpaceX首次载人任务圆满收工