MySQL进阶 日志结尾以及8.0新特性

news2024/11/18 17:46:47

日志结尾

前面我们聊了mysql的undo日志,redo日志,binlog等等,也从一条update语句来分析了一下日志的执行思路以及版本控制是怎么回事,四大特性是怎么实现的等等

今天我们来说说最后一个错误日志   

其实用处不大  因为对我们开发人员来说基本上是没有权限来查看错误日志的

一般是由我们的DBA来查看的

还有一个就是通用日志

这里会将所有的操作都记录下来

比如说某个用户出现了重复支付的问题,这里程序员就得根据这个来排查

或者锁是一些疑难的问题也可以通过这个来查询

我们需要将参数设置为on才能打开通用查询日志  

mysql8.0新特性

mysql的简单优化就已经告一段落了,下面我们来谈谈8.0版本的优化点

首先是一个优化手段以及其效果

下面我们介绍一些系统参数

这个就是服务器在同一时间最多允许多少条连接数

允许多少用户连接  剩下多余的连接数是给DBA来管理的

下面是一些超时时间的设置参数

新增降序索引

5.7对应的降序索引设置之后还是走的是普通索引

虽然支持这样的语法但是并没有得到对应的实现

对于8.0的实现优化了这一点

在使用c1正排c2倒排用到了降序索引 

------------------------------------------------------------------------------------------------------------------------

5.7如果使用分组group by关键字 会按照分组的顺序升序排列

而使用8.0则不会按照字段排序

------------------------------------------------------------------------------------------------------------------------

8.0新增隐藏索引

可以是你不确定这个索引有没有人使用了,让mysql的执行引擎默认无视这个索引

主要使用一个invisible的关键字  

这里的索引是真实存在的,在mysql的内部也是会真实维护一样的索引结构的

但是类似于软删除  不让看到

等到确实没有使用的时候再彻底删除

可以使用这个语句查看各种参数

或者还有一种优化手段就是先建立隐藏索引

临时使用一次看看优化器会不会走这个索引,如果使用到这个索引

那么我们再进行对应的设置全局参数

有点类似于灰度发布的感觉

------------------------------------------------------------------------------------------------------------------------

函数索引

我们知道mysql最好在where的时候不要使用函数

这是因为这样走不了索引

详情还是参考对应的索引树

但是比如我们想实现登录大小写不区分就没办法走索引了

这时候就用到了函数索引

实际上也是将函数的结果重新加了一层索引

我们知道因为8.0所有的系统表都替换成了innodb存储引擎

所以才能实现对应的一些特性

这里下面我们介绍一下对应的 for update  

实际上是一个排他锁

我们在启动一个事务查询这里就会出现问题

锁住了执行不了

但是8.0有一个nowait可以直接返回而无需阻塞

或者使用for   share 共享锁也是可以的

------------------------------------------------------------------------------------------------------------------------

新增Innodb自适应参数

就是可以根据对应的服务器检测的内存大小来自适应的选择更适合的buffered_pool的大小等参数能尽可能多的占据对应的可占用的资源来达成相对来说最好的效率

注:使用这个参数的时候最好是MySQL单独的服务器,否则会造成比如说redis的服务无法运行等操作

-----------------------------------------------------------------------------------------------------------------------

死锁检测参数  

建议开启但是在需要高并发的情况下可以酌情去关闭对应的参数以提高性能

-----------------------------------------------------------------------------------------------------------------------

8.0之后的undoLog已经不放在ibd文件中了

而是放在了对应的单独文件中了

对应也是有自增主键的bug修复

在5.7的版本中假设我现在有3条数据

1 2 3 

这里我将1的数据改成5了

然后添加后面的数据就会出现bug

8.0之后是增加到了redolog中

对应的update语句也会有感应

-----------------------------------------------------------------------------------------------------------------------

MySQL窗口函数  

也叫分析函数

这里实际上是对group by语句的一个优化

后面的操作使用分区就能实现group by 的功能了

这里的over实际上就是对聚合函数的条件

实际上是类似于group by 操作的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1687563.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

爬虫工程师---如何用charles把scrapy的爬虫监控起来调试

前言: 想法是,通过charles挂上魔法工具,然后跑代码的时候,实时监控每一个访问的请求状态和返回是个啥? 原理其实和挂手机等一样的;但是,我想说的,让scrapy挂上charles... 之前写过关于fiddler挂代理的路子,还有关于fiddler和charles的证书的文章,不明白的可以去查看 手机模拟器…

Unity Miscellaneous入门

概述 在Unity中有非常多好用的组件,也是Unity为我们提供的方便的开发工具,它的功能可能不是主流的内容,比如渲染,音乐,视频等等,所有Unity把这些内容统一归到了一个杂项文件组中。 Unity组件入门篇总目录-…

Centos 7 上安装【Docker】

安装Docker(Centos 7) 1.1.卸载(可选) 如果之前安装过旧版本的Docker,可以使用下面命令卸载: ***注意:***若提示[您需要 root 权限 执行此命令]需要在命令前加上sudo yum remove docker \do…

2. C++服务器编程-信号

什么是信号 其实信号就是一个中断。就是在执行程序的时候突然来了一个信号,然后我们去执行这个新来的程序了,这就是中断。 处理方法 信号的处理方式∶忽略、捕获、默认处理 linux中都有那些信号 man7 signal 比如说kill -9 安装man中文手册 自己百…

数据挖掘实战-基于内容协同过滤算法的电影推荐系统

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

[JAVASE] 类和对象(五) -- 抽象类和接口

目录 一. 抽象类 1.1 抽象类的定义 1.2 抽象类的实现 1.3 抽象类的作用 1.4 抽象类注意事项 二. 接口 2.1 接口的定义 2.2 接口的实现 2.3 接口的作用 2.4 接口注意事项 三. 总结 一. 抽象类 1.1 抽象类的定义 如果一个类中没有包含足够的信息来描绘一个具体的对象, 那么…

Apache无法确定服务器的完全合格域名(FQDN)报错解决方法

文章目录 一、apache语法检查报错二、报错原因分析三、报错解决办法 一、apache语法检查报错 当我们在进行apache配置时,需要检查配置是否存在语法错误: sudo apache2ctl configtestAH00558: apache2: Could not reliably determine the servers fully…

图解CPU、内存、硬盘的工作原理

1、简要概括 硬件作用cpu 负责执行计算机程序的指令内存用于临时存储程序和数据。硬盘将数据从硬盘读取到内存或将数据从内存写入硬盘的过程。联系三者协同工作,CPU执行程序指令,将需要的数据从硬盘读取到内存,进行计算后再将结果写回内存或…

JDBC访问数据库

JDBC学习笔记代码jar包等连接 链接:https://pan.baidu.com/s/1NqgMucUk7JjoSZXEkA-PPQ?pwd60kv 提取码:60kv –来自百度网盘超级会员V3的分享 下载驱动 不管是连接mysql还是sqlserver都需要Java的一个驱动包,及XXX.jar包,这个包…

扩散模型学习1

DDPM 总体训练原理 https://www.bilibili.com/video/BV1nB4y1h7CN/?spm_id_from333.337.search-card.all.click&vd_sourcef745c116402814185ab0e8636c993d8f 讲得很好:每次都是输入t和noise-x的图像,预测noise之后得到和加入的noise比较&#xff1b…

如何搭建springBoot项目中的全局异常处理和自定义异常处理

目录 1 什么是异常 2 异常的种类 3 解决异常的方式 4 全局异常处理器和自定义异常处理器 5 测试异常处理 1 什么是异常 异常(Exception)是在程序执行过程中出现的一种特殊情况或错误。它可以是由于程序逻辑错误、运行环境问题、用户输入错误等原因…

Unity中计数器的实现

Unity中计数器的实现 一、前言二、效果与逻辑(一) 实现效果(二)功能逻辑 三、功能代码四、应用实现五、结语 一、前言 最近在开发中用到计数器,但是unity自带的UI组件中没有,所以只好自己手撸了一个&#x…

亚马逊云科技介绍

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《C》 《Linux》 ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 一、亚马逊云科技云计算1.1 云计算的优势 二、领先的云平台三、亚马逊云科技区域的全球网络…

1Panel应用推荐:code-server

1Panel(github.com/1Panel-dev/1Panel)是一款现代化、开源的Linux服务器运维管理面板,它致力于通过开源的方式,帮助用户简化建站与运维管理流程。为了方便广大用户快捷安装部署相关软件应用,1Panel特别开通应用商店&am…

Redis常见数据类型(3)-String, Hash

目录 String 命令小结 内部编码 典型的使用场景 缓存功能 计数功能 共享会话 手机验证码 Hash 哈希 命令 hset hget hexists hdel hkeys hvals hgetall hmget hlen hsetnx hincrby hincrbyfloat String 上一篇中介绍了了String里的基本命令, 接下来总结一…

XV4001系列陀螺仪传感器广泛用于车载导航系统

随着汽车电子化趋势的加速,越来越多的汽车配备一系列先进的车载导航系统,这些导航系统功能的实现都依赖于精确的传感器数据(位置、车速、转向角度、车轮转速等)。传感器作为这些系统的核心组件,其准确性和可靠性直接影响到整个导航系统的性能…

OSPF问题

.ospf 选路 域内 --- 1类,2类LSA 域间 --- 3类LSA 域外 --- 5类,7类LSA --- 根据开销值的计算规则不同,还分为类型1和类型2 ospf 防环机制 区域内防环:在同一OSPF区域内,所有路由器通过交换链路状态通告&#xff…

鸿蒙原生应用元服务开发-鸿蒙真机运行项目实战与注意事项

一、解压项目注意项目包不能为中文 二、用数据线将装好DevEco Studio的电脑与设置为开发者模式的鸿蒙手机相连接。 三、将项目包托进DevEco Studio 中 注意项目包文件不能有嵌套 四、查看设备运行 五、点击项目结构 六、勾选红色框圈部分 登录开发者账号 七、选择好公司 八、等…

2024年人文艺术与创新教育国际学术会议(ICHAIE 2024)

2024年人文艺术与创新教育国际学术会议(ICHAIE 2024) 2024 International Conference on Humanities, Arts and Innovation Education 一、【会议简介】 随着全球化的推进和科技的迅猛发展,人文艺术与创新教育在培养未来人才方面扮演着越来越重要的角色…

Django继承User表实现注册和登录

Django继承User表实现注册和登录 django中已经有了user表,这篇文章将为大家详细讲解有关Django如何继承自带user表并重写。 一、后端部分 1、引入AbstractUser并继承 (1)、引入 from django.contrib.auth.models import AbstractUser**&…