广告
返回顶部
首页 > 资讯 > 数据库 >浅谈Mysql8和mysql5.7的区别
  • 605
分享到

浅谈Mysql8和mysql5.7的区别

2024-04-02 19:04:59 605人浏览 泡泡鱼
摘要

目录1.NoSQL存储2.隐藏索引3.设置持久化4.UTF-8编码5.通用表表达式(CommonTableExpressions)1.Nosql存储 Mysql从5.7 版本提供了N

1.Nosql存储

Mysql从5.7 版本提供了NoSQL的存储功能,在8.0中这部分得到一些修改,不过这个在实际中用的极少

2.隐藏索引

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

也就是说可以隐藏一个索引,然后观察对数据库的影响.如果性能下降,就说明这个索引是有效的,于是将其”恢复显示”即可;如果数据库性能看不出变化,说明这个索引是多于的,可以删掉了

隐藏一个索引的语法

ALTER TABLE t ALTER INDEX i INVISIBLE;

恢复显示该索引的语法是:

ALTER TABLE t ALTER INDEX i VISIBLE;

当一个索引被隐藏时,我们可以从show index命令的输出汇总看出,该索引visible属性值为No

**注意:**当索引被隐藏时,他的内容仍然是和正常索引一样实时更新的,这个特性本身是专门为了优化调试而使用的,如果你长期隐藏一个索引,那还不如干掉,因为索引的存在会影响数据的插入\更新和删除功能

3.设置持久化

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

SET PERSIST max_connections = 500;

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

4.UTF-8 编码

从 MySQL 8 开始,数据库的缺省编码将改为 utf8mb4,这个编码包含了所有 emoji 字符。多少年来我们使用 MySQL 都要在编码方面小心翼翼,生怕忘了将缺省的 latin 改掉而出现乱码问题。从此以后就不用担心了。

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优化的一个很重要特性。

1.235窗口函数(Window Functions) MySQL 被吐槽最多的特性之一就是缺少 rank() 函数,当需要在查询当中实现排名时,必须手写 @ 变量。但是从 8.0 开始,MySQL 新增了一个叫窗口函数的概念,它可以用来实现若干新的查询方式。 窗口函数有点像是 SUM()COUNT() 那样的集合函数,但它并不会将多行查询结果合并为一行,而是将结果放回多行当中。也就是说,窗口函数是不需要 GROUP BY 的。

假设我们有一张 “班级学生人数” 表:

如果要对班级人数从小到大进行排名,可以这样利用窗口函数:

说明:在这里创建了名为 w 的 window,规定它对 stu_count 字段进行排序,然后在 select 子句中对 w 执行 rank() 方法,将结果输出为 rank 字段。 这个特性也是oracle11g有的一个新特性,在优化也是起着很重要的作用。

到此这篇关于浅谈Mysql8和mysql5.7的区别的文章就介绍到这了,更多相关Mysql8 mysql5.7区别内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: 浅谈Mysql8和mysql5.7的区别

本文链接: https://www.lsjlt.com/news/141833.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • 浅谈Mysql8和mysql5.7的区别
    目录1.NoSql存储2.隐藏索引3.设置持久化4.UTF-8编码5.通用表表达式(CommonTableExpressions)1.NoSql存储 Mysql从5.7 版本提供了N...
    99+
    2022-11-13
  • 浅谈MySQL8和MySQL5.7在自增计数上的区别
    目录Auto-Incrementmysql 5.7 的自增MySQL 8 的自增持久化示例对比MySQL 8 的解决方案总结Auto-Increment 自增(Auto-Increment)计数功能可以为主键列生成唯一值...
    99+
    2023-10-09
    MySQL8自增计数 MySQL5.7自增计数
  • mysql5.7和mysql8有什么区别
    这篇文章将为大家详细讲解有关mysql5.7和mysql8有什么区别,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、隐藏索引的特性对性能调试非常有用。在8.0中,当索引被隐藏时,它不会被查询优化器使用。...
    99+
    2023-06-20
  • Mysql8和mysql5.7有什么区别
    小编给大家分享一下Mysql8和mysql5.7有什么区别,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1. NoSql存储Mysql从5.7 版本提供了NoSQL的存储功能,在8.0中这...
    99+
    2022-10-18
  • Mysql8和mysql5.7的区别是什么
    本篇内容介绍了“Mysql8和mysql5.7的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.NoSql存储Mysql从5.7...
    99+
    2023-06-29
  • 一文浅谈:&和&&的区别
    当我们在Java中使用逻辑运算符时,经常会用到两个符号:& 和 &&。这两个符号在表达式中的作用非常重要,但是很多人容易混淆它们的使用,因此我们需要了解它们之间的区别。 一、& 和 && 的用途 & 和 && 都可以用于逻辑运算,例 in...
    99+
    2023-10-24
    java jvm 面试
  • 浅谈System.getenv()和System.getProperty()的区别
    最近遇到一个需求,服务器实例需要获取当前的环境变量。经过查资料,发现环境变量可以在两个地方设置。 一、在系统层面设置环境变量 在系统层面设置环境变量,之前我们应该都操作过,以wind...
    99+
    2022-11-12
  • 浅谈RedisTemplate和StringRedisTemplate的区别
    目录一、区别二、问题总结三、案例:springboot整合redis五种数据结构API1、string(字符串)类型2、hash(哈希)类型3、list(列表)类型4、set(无序集...
    99+
    2022-11-13
  • 浅谈String、StringBuffer和StringBuilder的区别
    在Java开发面试经常会被问到String,StringBuider,StringBuffer区别,很多人回答得不够全面和深入,那么它们到底都有什么区别呢!三者都是用来对字符串进行操作,String通常用来定义一个变量,而StringBui...
    99+
    2019-10-22
    java入门 java String StringBuffer StringBuilder
  • 浅谈HttpClient、okhttp和RestTemplate的区别
    一、HttpClient 1、pom依赖 <!--HttpClient--> <dependency> <groupId>common...
    99+
    2022-11-12
  • 浅谈Ribbon、Feign和OpenFeign的区别
    Ribbon Ribbon 是 Netflix开源的基于HTTP和TCP等协议负载均衡组件 Ribbon 可以用来做客户端负载均衡,调用注册中心的服务 Ribbon的使用需要代码里手...
    99+
    2022-11-12
  • 浅谈SpringCloud Alibaba和SpringCloud的区别
    目录Spring Cloud Netflix 和 Spring Cloud 是什么关系?为什么有了Spring Cloud又出来个Spring Cloud Alibaba呢?Clou...
    99+
    2023-05-20
    SpringCloud SpringCloud Alibaba
  • 浅谈Java中Lock和Synchronized的区别
    目录1. 从功能角度来看2. 从特性来看3. 从性能方面来看1. 从功能角度来看 Lock和Synchronized都是java中去用来解决线程安全问题的一个工具 2. 从特性来看 ...
    99+
    2022-11-13
  • 浅谈Linux 脚本 sh 和 ./ 的区别
    如果.不在PATH里面,要执行当前目录下的可执行文件,使用全路径: ./executable-file PATH是环境变量,如果将当前目录“./”添加到环境变量中,那么也可以不用“./”,直接输入当前目录下...
    99+
    2022-06-04
    浅谈 脚本 区别
  • 浅谈StringEntity 和 UrlEncodedFormEntity之间的区别
    StringEntity 和 UrlEncodedFormEntity的区别 一、UrlEncodedFormEntity //设置请求方式与参数 URI uri = new U...
    99+
    2022-11-12
  • 浅谈JDK7和JDK8的区别在哪
    目录一、接口中的default方法二、lambda表达式三、函数式接口四、StreamAPI五、移出永久代,元空间替换六、HashMap中的优化七、currentHashMap的优化...
    99+
    2022-11-12
  • 浅谈一下forward和redirect的区别
    目录1.forward 和redirectforward又叫转发,表示转发,当请求来到时,可以将请求转发到其他的指定服务,用户端不知晓。redirect又叫重定向,表示转发,当请求发...
    99+
    2023-03-24
    forward redirect forward和redirect的区别
  • 浅谈JS中var,let和const的区别
    目录区别1区别2区别3区别4区别5区别6区别7区别1 let和var用来声明变量,const用来声明常量。 变量就是赋值后可以改变它的值,常量就是赋值后就不能改变它的值。 当声明为对...
    99+
    2022-11-13
  • 浅谈synchronized加锁this和class的区别
    目录synchronized 用法1.加锁 class 共享一个类实例2.加锁 class 创建多个实例3.加锁 this 共享一个类实例4.加锁 this 创建多个类实例总结syn...
    99+
    2022-11-12
  • 浅谈Java中static和非static的区别
    关于static和非static变量的区别 static 修饰的变量称为类变量或全局变量或成员变量,在类被加载的时候成员变量即被初始化,与类关联,只要类存在,static变量就存在。非static修饰的成员变量是在对象new出来的时候划分存...
    99+
    2023-05-31
    java static ava
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作