MySQL5.x和8.0

2023-12-17 06:52
文章标签 8.0 mysql5

本文主要是介绍MySQL5.x和8.0,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 区别
  • 1. 性能:MySQL 8.0 的速度要比 MySQL 5.7 快 2 倍
    • MySQL 8.0 在以下方面带来了更好的性能:读/写工作负载、IO 密集型工作负载、以及高竞争("hot spot"热点竞争问题)工作负载
  • 2. NoSQL:MySQL 从 5.7 版本开始提供 NoSQL 存储功能,目前在 8.0 版本中这部分功能也得到了更大的改进
    • 该项功能消除了对独立的 NoSQL 文档数据库的需求,而 MySQL 文档存储也为 schema-less 模式的 JSON 文档提供了多文档事务支持和完整的 ACID 合规性
  • 3. 窗口函数(Window Functions):从 MySQL 8.0 开始,新增了一个叫窗口函数的概念,它可以用来实现若干新的查询方式
    • 窗口函数与 SUM()、COUNT() 这种集合函数类似,但它不会将多行查询结果合并为一行,而是将结果放回多行当中
    • 即窗口函数不需要 GROUP BY
  • 4. 隐藏索引:在 MySQL 8.0 中,索引可以被“隐藏”和“显示”
    • 当对索引进行隐藏时,它不会被查询优化器所使用
    • 我们可以使用这个特性用于性能调试,例如我们先隐藏一个索引,然后观察其对数据库的影响
    • 如果数据库性能有所下降,说明这个索引是有用的,然后将其“恢复显示”即可;
    • 如果数据库性能看不出变化,说明这个索引是多余的,可以考虑删掉
  • 5. 取消查询缓存:MySQL 8.0 出于性能和可维护性方面的考虑取消了查询缓存,通过使用索引、更好的查询计划优化、以及缓存结果集而不是整个查询
    • 这些方法更有效地提高了查询性能,同时避免了查询缓存可能引入的问题
  • 6. 降序索引:MySQL 8.0 为索引提供按降序方式进行排序的支持,在这种索引中的值也会按降序的方式进行排序
  • 7. 通用表达式(Common Table Expressions CTE):在复杂的查询中使用嵌入式表时,使用 CTE 使得查询语句更清晰
  • 8. UTF-8 编码:从 MySQL 8 开始,使用 utf8mb4 作为 MySQL 的默认字符集
  • 9. JSON:MySQL 8 大幅改进了对 JSON 的支持,添加了基于路径查询参数从 JSON 字段中抽取数据的 JSON_EXTRACT() 函数,以及用于将数据分别组合到 JSON 数组和对象中的 JSON_ARRAYAGG() 和 JSON_OBJECTAGG() 聚合函数
  • 10. 可靠性:InnoDB 现在支持表 DDL 的原子性,也就是 InnoDB 表上的 DDL 也可以实现事务完整性,要么失败回滚,要么成功提交,不至于出现 DDL 时部分成功的问题,此外还支持 crash-safe 特性,元数据存储在单个事务数据字典中
  • 11. 高可用性(High Availability):InnoDB 集群为您的数据库提供集成的原生 HA 解决方案
  • 12. 安全性:对 OpenSSL 的改进、新的默认身份验证、SQL 角色、密码强度、授权

这篇关于MySQL5.x和8.0的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/503479

相关文章

mysql重置root密码的完整步骤(适用于5.7和8.0)

《mysql重置root密码的完整步骤(适用于5.7和8.0)》:本文主要介绍mysql重置root密码的完整步骤,文中描述了如何停止MySQL服务、以管理员身份打开命令行、替换配置文件路径、修改... 目录第一步:先停止mysql服务,一定要停止!方式一:通过命令行关闭mysql服务方式二:通过服务项关闭

Linux 删除 当前下的 mysql-8.0.31 空文件夹

在Linux中,如果你想要删除当前目录下的名为mysql-8.0.31的空文件夹(即该文件夹内没有任何文件或子文件夹),你可以使用rmdir命令。但是,如果mysql-8.0.31文件夹并非完全为空(即它包含文件或子文件夹),rmdir命令会失败。 如果你的目标是删除mysql-8.0.31文件夹及其内部的所有内容(无论是否为空),你应该使用rm命令结合-r(或-R,它们是等价的)选项来递归地删

mysql数据库8.0小版本原地升级

mysql数据库8.0小版本原地升级 准备工作升级工作停库使用新版本软件启动数据库更新环境变量重启数据库 升级日志 OS release: CentOS 7.9升级前DB version: MySQL 8.0.30数据库升级安装包:mysql-8.0.36-linux-glibc2.12-x86_64.tar.xzMySQL Shell安装包:mysql-shell-8.0.36

【linux mysql】mysql高版本8.0.23版本密码修改总结

mysql 8.0 版本,由于增加了一些安全策略等限制,所以修改用户密码会稍微麻烦些。下面是针对这个高版本的总结。 一、配置/etc/my.cnf 文件 免密码登录mysql vim /etc/my.cnf# 增加这两行命令skip-grant-tablesdefault-authentication-plugin=mysql_native_password 重启启动mysql se

安卓8.0通知栏适配

一、谷歌为什么在安卓8.0对通知栏进行修改         系统通知栏作为除桌面启动图标之外的唯一入口,对app的日活起到非常重要的作用,因此各个app开发商都希望能抢占用户的通知栏。随着移动端的普及和安卓手机存储容量的扩大,用户手机能安装的app数量越来越多,一台手机安装几十到上百个app已经不足为奇,各个app都极尽可能的抢占通知栏,而安卓系统本身又没有一种规范来约束app开发商的这种行为,

安卓8.0桌面图标适配

一、现状及问题          在安卓8.0之前的版本中,原生安装系统 在应用安装到手机后,显示在桌面上的图标只有一种方式来决定, 即在manifest.xml的Application节点中设置 icon标签的属性,这个任何安卓开发者都应该清楚。            上面我们说是在原生安卓系统中的表现,那么在国内就不一定是这样。 拿小米手机来举例,MiUI 8.2 对应 Android 6.

mysql 5.6 ,5.7 ,8.0 忘记密码,及修改密码问题

5.5版本 1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。  因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的  状态下,其他的用户也可以任意地登录和修改MySQL的信息。可以采用将MySQL对  外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全  状态。最安全的状态是到服务器的Console上

0基础轻松玩转.NET Web API 8.0【CICD】项目实战

1.背景 最近在学习CI/CD,为了加快熟悉CI/CD,我实操了下基于.Net 8.0的CI/CD项目实战。Ci/CD就是自动化作业,实现项目自动编译、发布、执行等,也有用于拉取推送数据的场景。本文主要介绍了在win 11下搭建CI/CD,实现自动发布.net 8.0 WebAPI,并支持代码更新后的发布。通过本文可以快速了解CI/CD流程和思路,不过暂时还没接入docker容器,后续抽空会出支

ubuntu mysql 8.0.21修改root密码

第一步:.找到debian-sys-maint用户和密码: sudo cat /etc/mysql/debian.cnf 第二步:用此用户名和密码登陆 第三步:修改密码 ~# use mysql;~# flush privileges;~# ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password

从MySQL 5.6升级到8.0,Facebook付出了惨痛代价……

点击上方“朱小厮的博客”,选择“设为星标” 后台回复"书",获取 后台回复“k8s”,可领取k8s资料 Facebook 称,他们最近的一次大版本升级到 MySQL 5.6 花了一年多时间才完成,还在 5.6 版上开发 LSM 树存储引擎,MyRocks。在升级到 5.7 的同时构建一个新的存储引擎,会大大减慢 MyRocks 的进度,因此我们选择继续使用 5.6,直到 MyRocks 完成,M