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

日志结尾

前面我们聊了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.rhkb.cn/news/329967.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vlan综合实验

一,实验拓扑: 二,实验需求: 1、pc1和pc3所在接口为access;属于vlan 2;P可以骄问pcepces不的一段;其中pc2可以访问pc4/pc5/pc6; 2、pc1/pc3与pc2/pc4/pc5/pc6不在同一网段; 3、所有pc通过DHCP获取Ip地址,且pc1/pc3可以…

BGP选路规则实验

实验拓扑及要求如下 注意: 在完成要求时,默认区域内IGP搭建完成,IBGP和EBGP的对等体关系建立完成 结果演示如下 IBGP内部搭建:使用OSPF IBGP与EBGP对等体建立 要求一:PreVal策略 PV属性默认值为0,规则是…

Vue学习穿梭框Transfer组件

Vue学习Transfer组件 一、前言1、案例一2、案例二 一、前言 在 Vue 3 中使用 el-transfer 组件可以帮助你实现数据的穿梭功能,让用户可以将数据从一个列表转移到另一个列表。下面是一个简单示例,演示如何在 Vue 3 中使用 el-transfer 组件: …

【加密与解密(第四版)】第二十二章笔记

第二十二章 补丁技术 补丁:文件补丁(修改文件本身的某个数据)和内存补丁(对正在运行的程序的数据进行修改,以达到某种效果) 22.1 文件补丁 文件补丁直接修改可执行文件或某功能模块的二进制代码。 22.2 内…

小而美:两步完成从源码到应用的极简交付

作者:花三(王俊) Serverless 应用引擎 SAE 是阿里云推出的一款零代码改造、极简易用、自适应弹性的容器化应用托管平台,面市以来为几万家企业客户提供服务,运行稳定,广受好评。 SAE 的出现解决了众多企业…

黑马点评1——短信篇(基于session)

🌈hello,你好鸭,我是Ethan,一名不断学习的码农,很高兴你能来阅读。 ✔️目前博客主要更新Java系列、项目案例、计算机必学四件套等。 🏃人生之义,在于追求,不在成败,勤通…

成都青年AI人才崭露头角,知了汇智科技助力孵化营大放异彩

5月18日-19日,为期两天的成都国际商贸城青年(大学生)AI应用孵化营活动在热烈的氛围中圆满落幕。本次活动由成都国际商贸城、成都成商数字科技有限公司、成都知了汇智科技有限公司及成都电商职教集团联合举办,旨在为青年&#xff0…

拨云见日,ATFX七场研讨会揭秘投资先机

财经先机,一手掌握。近期,随着国际金价持续走高,避险情绪高涨,由此激发新一轮投资热潮。作为业界领先的金融创新品牌,ATFX深受投资者认可和信赖,为助力广大投资者了解市场运行规律,捕捉财经脉络…

秋招突击——算法——模板题——区间DP——合并石子

文章目录 题目内容思路分析实现代码分析与总结 题目内容 思路分析 基本思路&#xff0c;先是遍历区间长度&#xff0c;然后再是遍历左端点&#xff0c;最后是遍历中间的划分点&#xff0c;将阶乘问题变成n三次方的问题 实现代码 // 组合数问题 #include <iostream> #in…

vue3+vite解决项目打包后本地图片等资源找不到的问题

1.在vite.config.js里面做如下配置 import { defineConfig } from vite import vue from vitejs/plugin-vueexport default defineConfig({base: ./, // 打包的静态资源引用路径plugins: [vue()], // 放插件用的resolve: {alias: {: /src // 配置/提示符}}, })上述配置主要就是…

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

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

HTTP 请求的完整过程

HTTP 请求的完整过程 当用户在浏览器输入网址回车之后&#xff0c;网络协议都做了哪些工作呢? 首先工作的是 浏览器应用程序&#xff0c;他要解析出 URL中的域名 根据域名获取对应的ip地址&#xff0c;首先从浏览器缓存中査看&#xff0c;如下可以査看浏览器中域名对应ip的解…

拆分盘投资深度解析:投资逻辑、风险探讨与投资建议

随着互联网技术的飞速发展&#xff0c;金融领域也迎来了诸多创新。其中&#xff0c;拆分盘作为一种新型投资模式&#xff0c;以其独特的“只涨不跌”机制&#xff0c;吸引了众多投资者的目光。本文将深入探讨拆分盘的投资逻辑&#xff0c;并通过一个实际案例进行解析&#xff0…

Funkey游戏机新作,基于全志T113的全新版本

不同于配置高端、性能强劲的Windows、安卓掌机&#xff0c;有一部分的爱好者往往对拥有复古外形的开源掌机更加感兴趣。作为开源掌机的热门产品&#xff0c;小巧便携的FunKeys掌机是各位开源爱好者争相复刻的对象。因热爱开源掌机DIY而聚集的“双核掌机开发组”开发者团队&…

xxe漏洞--xml外部实体注入漏洞

1.xxe漏洞介绍 XXE&#xff08;XML External Entity Injection&#xff09;是一种攻击技术&#xff0c;它允许攻击者注入恶意的外部实体到XML文档中。如果应用程序处理XML输入时未正确配置&#xff0c;攻击者可以利用这个漏洞访问受影响系统上的敏感文件、执行远程代码、探测内…

计算机毕业设计 | springboot药品库存追踪与管理系统 药店管理(附源码)

1&#xff0c;绪论 1.1 背景调研 如今药品调价频繁&#xff0c;且品种繁多&#xff0c;增加了药品销售定价的难度。药品来货验收登记中的审查有效期环节容易出错&#xff0c;错收过期或有效期不足的药品。 手工模式下的药品库存难以及时掌握&#xff0c;虽然采取了每日进行缺…

介绍Votenet的网络结构

Votenet是一种用于3D对象检测的深度学习网络&#xff0c;其网络结构主要由两个部分组成&#xff1a;Vote网络和Objectness网络。 Vote网络被设计用于从点云数据中生成候选3D边界框。它由三个主要的模块组成&#xff1a;1&#xff09;共享MLP层&#xff0c;用于提取点云中每个点…

Spark累加器

1. 累加器 累加器&#xff1a;分布式共享只写变量 考虑如下计算RDD中数据的和&#xff1a; val rdd sc.makeRDD(List(1, 2, 3, 4))var sum 0 rdd.foreach(num > {sum num} )println("sum " sum) 预期结果10&#xff0c;但其实不是 foreach里面的函数是在…

揭秘未来,开启盲盒新篇章——打造你的专属盲盒小程序

一、引言 在这个充满未知与惊喜的时代&#xff0c;盲盒文化已经深入人心&#xff0c;成为年轻人追求新奇、体验刺激的新宠。如今&#xff0c;随着科技的快速发展&#xff0c;盲盒文化也迎来了全新的发展机遇。我们诚挚地邀请您一同踏上这场盲盒小程序开发的旅程&#xff0c;共…

查询一个字符串在另一个字符串中出现的次数(java)

查询一个字符串在另一个字符串中出现的次数 例&#xff1a; String str1“helloworld,java,python,hellokafka,world big table helloteacher”; String str2“hello”; 字符串str2在str1中出现3次 代码 package exercise.test8;public class Demo8 {public static void mai…