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 操作的

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值