我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL8.0与MySQL5.7的区别详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL8.0与MySQL5.7的区别详解

1.隐藏索引

隐藏索引的特性对于性能调试非常有用,在8.0 中,索引可以被隐藏和显示,当一个索引隐藏时,他不会被查询优化器所使用,性能调试使用;
隐藏索引

ALTER TABLE t ALTER INDEX i INVISIBLE;
#例子
ALTER table public_fund_announce  ALTER INDEX idx_fund_id  INVISIBLE;

恢复索引

ALTER TABLE t ALTER INDEX i VISIBLE;

2.用户创建,修改和授权

默认 身份认证的插件是caching_sha2_password,需要对应的客户端才能登陆,如果需要兼容,可以在设置密码时 加入WITH mysql_native_password;

并且创建用户与授权需要分开执行;

例如

create user dbadmin@'%' identified WITH mysql_native_password by '密码';
alter user dbadmin@'%' identified WITH mysql_native_password by '密码';
flush privileges;

3.设置持久化

MySQL 的设置可以在运行时通过 SET GLOBAL 命令来更改,但是这种更改只会临时生效,到下次启动时数据库又会从配置文件中读取。
MySQL 8 新增了 SET PERSIST 命令,例如:

SET PERSIST max_connections = 500;

MySQL 会将该命令的配置保存到数据目录下的 mysqld-auto.cnf 文件中,下次启动时会读取该文件,用其中的配置来覆盖缺省的配置文件。

4.UTF-8编码

从 MySQL 8 开始,数据库的缺省编码将改为 utf8mb4,这个编码包含了所有 emoji 字符;

5.通用表表达式(Common Table Expressions)

复杂的查询会使用嵌入式表,例如:

SELECT t1.*, t2.* FROM
     (SELECT col1 FROM table1) t1,
     (SELECT col2 FROM table2) t2;

而有了 CTE,我们可以这样写:

WITH
t1 AS (SELECT col1 FROM table1),
t2 AS (SELECT col2 FROM table2)
SELECT t1.*, t2.*
FROM t1, t2;

这样看上去层次和区域都更加分明,改起来也更清晰的知道要改哪一部分。
这个特性在很多报表场景是很有用的,也是mysql优化的一个很重要特性。

6.参数变化

query_cahe参数已经不存在,设置会报错

binglog过期时间参数变更为

binlog_expire_logs_seconds = 432000

7.性能提升

官方表示速度比5.7快两倍,尤其在工作负载高,高竞争时间时;待测试验证,查询count确实有一定提升;

8.NoSQL文档支持

MySQL 从 5.7 版本开始提供 NoSQL 存储功能,目前在 8.0 版本中这部分功能也得到了更大的改进。该项功能消除了对独立的 NoSQL 文档数据库的需求,而 MySQL 文档存储也为 schema-less 模式的 jsON 文档提供了多文档事务支持和完整的 ACID 合规性。

9.窗口函数

MySQL8.0与MySQL5.7的区别详解

在这里创建了名为 w 的 window,规定它对 stu_count 字段进行排序,然后在 select 子句中对 w 执行 rank() 方法,将结果输出为 rank 字段。

10.其他

提供授权角色概念,可以把权限授权给role,然后把角色给到指定用户,方便权限细化管理。

参考官方文档:https://docs.oracle.com/cd/E17952_01/mysql-8.0-en/mysql-nutshell.html

参考其他:https://www.php.cn/mysql-tutorials-464447.html

到此这篇关于MySQL8.0与MySQL5.7区别的文章就介绍到这了,更多相关MySQL8.0与MySQL5.7区别内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL8.0与MySQL5.7的区别详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL8.0与MySQL5.7的区别详解

目录1.隐藏索引2.用户创建,修改和授权3.设置持久化4.UTF-8编码5.通用表表达式(Common Table Expressions)6.参数变化7.性能提升8.NoSQL文档支持9.窗口函数10.其他1.隐藏索引隐藏索引的特性对于
2023-01-13

mysql8.0与mysql5.7安全加密小差别

今天升级到了mysql8.0 做主从同步遇到下面问题2020-07-21T14:09:52.626718Z 13 [ERROR] [MY-010584] [Repl] Slave I/O for channel ‘‘: error connecting to
mysql8.0与mysql5.7安全加密小差别
2015-02-04

MySQL5.6与MySQL5.7安装的区别

一.MySQL5.6与MySQL5.7安装的区别1、cmake的时候加入了boost 下载boost.org2、初始化时 cd /application/mysql/bin/mysql 使用mysqld --initialize 替代mysql_install
MySQL5.6与MySQL5.7安装的区别
2019-06-17

Oracle与MySQL的区别详解

目录什么是mysql?什么是oracle?MySQL的优点MySQphpL的缺点Oracle的优点Oracle的缺点Oracle与MySQL的区别?什么是MySQLandroid?MySQL是一个关系型数据库管理系统,由瑞典MySQL A
2023-04-14

Logger.getLogger()与LogFactory.getLog()的区别详解

LogFactory来自common-logging包。如果用LogFactory.getLog,你可以用任何实现了通用日志接口的日志记录器替换log4j,而程序不受影响
2022-11-15

iostream与iostream.h的区别详细解析

以下是对C++中iostream与iostream.h的区别进行了详细的分析介绍,需要的朋友可以过来参考下
2022-11-15

Numpy中np.dot与np.matmul的区别详解

本文主要介绍了Numpy中np.dot与np.matmul的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-02-15

node.js中fs.stat与fs.fstat的区别详解

前言 fs.stat和fs.fstat他们的方法功能是一样的,都是获取文件的状态信息,本文主要介绍的是关于node.js中fs.stat与fs.fstat区别的相关内容,分享出来供大家参考学习,下面来看看详细的介绍: fs.stat用法:f
2022-06-04

CreateThread()与beginthread()的区别详细解析

很多开发者不清楚这两者之间的关系,他们随意选一个函数来用,发现也没有什么大问题,于是就忙于解决更为紧迫的任务去了。等到有一天忽然发现一个程序运行时间很长的时候会有细微的内存泄露,开发者绝对不会想到是因为这两套函数用混的结果
2022-11-15

编程热搜

目录