![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
文章平均质量分 80
小斌0810
php,golang开发工程师
展开
-
mysql锁
间隙锁(Gap Lock)是Innodb在\color{red}{可重复读}提交下为了解决幻读问题时引入的锁机制,幻读的问题存在是因为新增或者更新操作,这时如果进行范围查询的时候(加锁查询),会出现不一致的问题,这时使用不同的行锁已经没有办法满足要求,需要对一定范围内的数据进行加锁,间隙锁就是解决这类问题的。MDL 的作用是,保证读写的正确性。你可以想象一下,如果一个查询正在遍历一个表中的数据,而执行期间另一个线程对这个表结构做变更,删了一列,那么查询线程拿到的结果跟表结构对不上,肯定是不行的。原创 2024-07-17 14:10:50 · 756 阅读 · 0 评论 -
mysql索引分类
按索引是否包含记录数据索引可分为:按索引是否建立在主键上分类按索引是底层的数据结构分类按索引的常规功能分类其他特性索引原创 2024-07-17 14:10:14 · 286 阅读 · 0 评论 -
mysql B+数索引数据结构
概念:二叉树是另一种树形结构概念:平衡二叉树是基于二分法的策略提高数据的查找速度的二叉树的数据结构;概念:单一节点存储多个键值和数组的平衡树B数索引的数据结构如下图:B+树和B树的进一步优化,如下图。原创 2024-07-17 14:09:37 · 705 阅读 · 0 评论 -
mysql mvcc实现可重复读和读已提交
它的主要作用是将事务恢复到执行修改之前的样子,但是,恢复的情况一般分为两种,一种是逻辑恢复,一种是物理恢复,这里需要非常强调的是,undo的恢复是逻辑恢复,也就是说,如果你插入了100w条数据,导致innodb分配了一个新的数据页来存储这些数据,那么在事务进行回滚的时候,undo的功能并不是回收这个数据页,而是将这些insert的操作,改变成delete的操作从而执行回滚。除此之外,undo日志会将delete操作转化为insert操作,update操作转化为反向的update操作。原创 2024-07-17 14:08:20 · 706 阅读 · 0 评论