2023年3月27日
摘要: 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。 示例 1: 输入:head = [1,2 阅读全文
posted @ 2023-03-27 00:28 zhengbiyu 阅读(127) 评论(0) 推荐(0) 编辑
摘要: change buffer 是 buffer pool 里的一块区域。 change buffer 不缓存聚簇索引的更新,二级索引的page假如符合使用 change buffer 更新条件的话,就不去读磁盘,直接使用 change buffer 的 page,change buffer 的 pag 阅读全文
posted @ 2023-03-27 00:25 zhengbiyu 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 什么时没必要用索引 1) 数据唯一性差,区分度不高(一个字段的取值只有几种时)的字段不要使用索引 比如性别,只有两种可能数据。意味着索引的二叉树级别少,多是平级。这样的二叉树查找无异于全表扫描。 2) 频繁更新的字段不要使用索引 比如logincount登录次数,频繁变化导致索引也频繁变化,增大数据 阅读全文
posted @ 2023-03-27 00:15 zhengbiyu 阅读(42) 评论(0) 推荐(0) 编辑
  2023年3月26日
摘要: 索引结构(innodb) B Tree 每个节点都存储key和data,所有节点组成这棵树,并且叶子节点指针为null,叶子结点不包含任何关键字信息 B+Tree 所有的叶子结点中包含了全部关键字的信息,非叶子节点只存储键值信息,及指向含有这些关键字记录的指针,且叶子结点本身依关键字的大小自小而大的 阅读全文
posted @ 2023-03-26 23:47 zhengbiyu 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 事务回滚用,属于逻辑日志。 行记录隐藏列roll_pointer(7字节)会指向undolog,每条undolog中也有一个roll_pointer指向更早的undolog记录,在mvcc中会使用版本链来达到事务隔离的效果。 我们知道如果想要保证事务的原子性,就需要在异常发生时,对已经执行的操作进行 阅读全文
posted @ 2023-03-26 23:39 zhengbiyu 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 在mysql中数据更新的流程是:1、执行器先从引擎中找到数据,如果在内存则直接返回,如果不在内存查询后返回。2、执行器拿到数据后,会先修改数据,然后记录undolog,调用引擎接口重新写入数据。3、引擎将数据更新到内存,同时写入redo log,此时处于prepare状态。4、执行器生成这个操作的b 阅读全文
posted @ 2023-03-26 23:38 zhengbiyu 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 死锁的必要条件 多个并发事务(2个或者以上)。 每个事务都持有锁(或者是已经在等待锁)。 每个事务都需要再继续持有锁(为了完成事务逻辑,还必须更新更多的行)。 事务之间产生加锁的循环等待,形成死锁。 总结:当两个或多个事务相互持有对方需要的锁时,就会产生死锁。 死锁的检测(8.0版本增加) 当死锁检 阅读全文
posted @ 2023-03-26 23:29 zhengbiyu 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 首先选择业务低峰期执行,如果24小时业务都频繁,有以下几种方式: 直接添加 如果该表读写不频繁,数据量较小(通常1G以内或百万以内),直接添加即可。 MySQL 5.6后自带OnlineDDL功能(MyISAM表无法使用,且不支持全文和空间索引),自身的OnlineDDL是inplace模式,当整个 阅读全文
posted @ 2023-03-26 23:20 zhengbiyu 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 数据空洞 当对一条数据执行delete操作时,MySQL将数据删除后,并未将数据占用的空间返还给操作系统,而是将当前空间标记为"可复用",当有新的数据插入时,则不会重新申请空间,而是插入到"可复用"空间中,这种"可复用"空间,称之为数据空洞。 MySQL官方文档对此的解释如下: After dele 阅读全文
posted @ 2023-03-26 23:14 zhengbiyu 阅读(161) 评论(0) 推荐(0) 编辑
摘要: explain语句进行分析。还需要进一步分析的话可以进行optimizer_trace,一共prepare、optimizer、execute阶段,主要关注optimizer阶段。 type 详见索引的访问类型。 key 实际使用的索引。 key_len 使用的索引的长度。可以分析联合索引用上了几个 阅读全文
posted @ 2023-03-26 23:11 zhengbiyu 阅读(35) 评论(0) 推荐(0) 编辑