sql
文章平均质量分 88
牛八里昂
这个作者很懒,什么都没留下…
展开
-
Join执行原理解析
1 概述 一个完整的SQL语句中会被拆分红多个子句,子句的执行过程当中会产生虚拟表(vt),可是结果只返回最后一张虚拟表。从这个思路出发,咱们试着理解一下JOIN查询的执行过程并解答一些常见的问题。 若是以前对不一样JOIN的执行结果没有概念,能够结合这篇文章往下看mysql 2 JOIN的执行顺序 如下是JOIN查询的通用结构sql SELECT <row_list> FROM <left_table> <inner|left|right> J转载 2022-02-27 23:49:19 · 706 阅读 · 0 评论 -
事务隔离级别
事务具有以下4个特性 ACID A:原子性,事务中的一组操作,一起成功或一起失败 C:一致性,事务中的多个操作的数据,数据状态一致 I:隔离性,一个事务不会影响另一个事务中的数据 D:持久性,事务执行完后,落表 事务问题 脏写:后面的事务值覆盖了前一个事务内的值 脏读:事务B读到了事务A未提交的数据,事务A的数据可能回滚。 不可重复读:事务B内相同的查询语句在不同时刻查到的结果不同 幻读:事务读取到了其他事务新增的数据,主要说的是新增数据。 表锁/行锁 表锁 开销小,加锁快原创 2021-12-21 21:56:27 · 46 阅读 · 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 · 726 阅读 · 0 评论