![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
sql
文章平均质量分 88
牛八里昂
这个作者很懒,什么都没留下…
展开
-
Join执行原理解析
1 概述一个完整的SQL语句中会被拆分红多个子句,子句的执行过程当中会产生虚拟表(vt),可是结果只返回最后一张虚拟表。从这个思路出发,咱们试着理解一下JOIN查询的执行过程并解答一些常见的问题。若是以前对不一样JOIN的执行结果没有概念,能够结合这篇文章往下看mysql2 JOIN的执行顺序如下是JOIN查询的通用结构sqlSELECT <row_list> FROM <left_table> <inner|left|right> J转载 2022-02-27 23:49:19 · 739 阅读 · 0 评论 -
事务隔离级别
事务具有以下4个特性ACIDA:原子性,事务中的一组操作,一起成功或一起失败C:一致性,事务中的多个操作的数据,数据状态一致I:隔离性,一个事务不会影响另一个事务中的数据D:持久性,事务执行完后,落表事务问题脏写:后面的事务值覆盖了前一个事务内的值脏读:事务B读到了事务A未提交的数据,事务A的数据可能回滚。不可重复读:事务B内相同的查询语句在不同时刻查到的结果不同幻读:事务读取到了其他事务新增的数据,主要说的是新增数据。表锁/行锁表锁 开销小,加锁快原创 2021-12-21 21:56:27 · 48 阅读 · 0 评论 -
MVCC多版本并发控制保护机制
数据库的默认隔离级别是 Repeat_Read(可重复读),解决了隔离级别为读已提交下,不可重复读的问题;Repeat_Read底层其实用到的是MVCC机制。MVCC机制的基石是:undo日志链和 一致性视图read_view数据库中每个事务对数据的修改,都会生成一条undo日志,用于发生异常时进行回滚。undo日志版本链是指一行数据被多个事务依次修改过后,在每个事务修改完后,Mysql会保留修改前的数据undo回滚日志,并且用两个隐藏字段trx_id和roll_pointer把这些undo日志串联原创 2021-12-20 23:00:44 · 729 阅读 · 0 评论