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.窗口函数

在这里创建了名为 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区别相关推荐

  1. MySQL8.0 和 MySQL5的区别

    虽然MySQL8.0.x都出来了,自己一直使用 5.7的版本,对于新的版本今天抽了些时间来了解一下新的特性.而对于新的版本的了解往往都是从版本区别开始的,今天便算是作一个笔记吧. Oracle发布新版 ...

  2. 可能是最全面的MySQL8.0与MySQL5.7差异分析

    MySQL8.0与MySQL5.7有什么区别和坑?有必要升级MySQL8.0吗?MySQL 8.0是2018年4月20日发布的全球最受欢迎的开源数据库的一个非常令人兴奋的新版本,一些关键的增强包括:S ...

  3. CentOS 6.5系统使用yum方式安装LAMP环境和phpMyAdmin,mysql8.0.1/mysql5.7.22+centos7,windows mysql安装、配置...

    介绍如何在CentOs6.2下面使用YUM配置安装LAMP环境,一些兄弟也很喜欢使用编译的安装方法,个人觉得如果不是对服务器做定制,用yum安装稳定简单,何必去download&make&am ...

  4. MySQL8.0与MySQL5.7 OLTP 性能测试对比

    MySQL8.0出来已经有很长时间了,目前最新版本是MySQL8.0.20 ,那么MySQL8.0到底比MySQL5.7 性能有多大的提升呢,今天就做了一组压力测试来实际测试一下.为了使结果更具有说服 ...

  5. 【卸载MySQL8.0重装MySQL5.7】安装过程百般花式错误+手动删除残余服务+修改数据库默认密码

    我遇到一个超级棘手的难题,由于一个旧web项目需要用到c3p0的数据库操作库,由于本人jdk是1.7版本,mySQL是8.0版本,同时mySQL8.0支持5.x的驱动,在一般的MVC操作并无问题.但是 ...

  6. 数据库学习笔记第一弹——MySQL8.0和MySQL5.7的下载、安装与配置(图文详解步骤2022)

    数据库学习笔记第一弹--MySQL8.0和MySQL5.7的下载.安装与配置(图文详解步骤2022) 文章目录 数据库学习笔记第一弹--MySQL8.0和MySQL5.7的下载.安装与配置(图文详解步 ...

  7. Mysql8.0和Mysql5.0访问jdbc连接

    MySQL8.0 访问: jdbc.driver=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/springmvc?use ...

  8. php使用mysql5和8的区别_mysql8.0和mysql5.7的区别是什么?

    区别:mysql8.0的索引可以被隐藏和显示,当一个索引隐藏时,他不会被查询优化器所使用:2.mysql8.0新增了"SET PERSIST"命令:3.从mysql8.0开始,数据 ...

  9. Mysql8.0新特性之详细版本

    1. 账户与安全 用户创建与授权 之前:创建用户并授权 1 grant all privileges on *.* to 'myuser'@'%' identified by '3edc #EDC'; ...

最新文章

  1. InterlockedIncrement函数详解
  2. springboot websocket发送和接收消息代码资源下载
  3. 机器学习实战(四)逻辑回归LR(Logistic Regression)
  4. Android 入门篇(一)环境搭建
  5. ssr怎么编辑服务器ip_“阴阳师”IP影响力有多大?网易用它做了一款弹珠游戏,TapTap评分高达9.8分...
  6. Java排序算法(四):Shell排序
  7. MySQL 之 Metadata Locking 研究
  8. mysql连17张表_mysql连表查询
  9. 【银联支付】php接入银联支付
  10. 生活技巧:过日子学着点
  11. Linux如何使用mail命令给outlook邮箱发送邮件
  12. 如何将离线DAT卫星影像解压为瓦片?
  13. 项目管理中团队合作有多重要
  14. 关于我的大学ACM江湖
  15. 云巡店php源码,云巡店™〡连锁版正式上线开放注册〡《系统使用手册 1.0》
  16. vivado配置EMIO(使用vivado配置XDC文件)
  17. 用Flutter实现小Q聊天机器人(二)
  18. JQuery拖拽通过八个点改变div大小
  19. 慧荣SM2246EN开卡Toggle 8贴东芝闪存SSD失败解决方法
  20. 什么是脚本语言?什么是解释性语言?什么是编译性语言?

热门文章

  1. SSM毕设项目西安凯特物流订单管理系统ckqd3(java+VUE+Mybatis+Maven+Mysql)
  2. 【react】阻止默认事件
  3. adb连接夜神模拟器会断开连接怎么处理?
  4. 雷林鹏分享Flask Sijax
  5. 2018年06月16日广州珠海长隆海洋世界之旅
  6. 工作流自动化助您以实用和创新的方式应对信息管理挑战
  7. 哪个学校考研考python_考研,哪个学校最好考?
  8. R笔记(简单数据处理)
  9. 记录下较为完整的Rabbitmq学习笔记
  10. JavaWeb实现简单的用户注册登录(入门级)