Mysql-进阶

Time: 2024-12-22 Sunday 02:08:02
Author: Jackasher

Mysql-进阶

mysql优化

image-20241111114718008

事务

见名知义,Read uncommitted就是可以读到没有提交的事务, 默认的是可以重复读,就是保证读到的内容是一致的,

image-20241112153652634

事务是怎么实现的

在MySQL中,开启事务时是否加锁,取决于事务的具体操作隔离级别

MVCC的一个关键是快照读取,这在READ COMMITTED中主要表现在:

  • 每次读取操作会查看记录的最新提交版本,不使用锁定机制,而是依赖于版本控制。

  • 当数据行被修改时,InnoDB会生成一个新版本,并将旧版本存储在UNDO日志中。这样,不同事务可以根据自己的隔离级别和操作时间点来读取合适的版本。

为了避免不可重复读,InnoDB通过行级锁来保证一个事务读取的数据在整个事务执行期间不会被其他事务修改。具体来说,在可重复读隔离级别下,查询会在读取数据时自动加锁,防止其他事务对该行数据进行修改,确保当前事务能够多次读取相同的数据,并且读取的结果是相同的。

事务原理

image-20241112172148622

image-20241112172408952

image-20241112174358792


Mysql-进阶
http://example.com/2024/12/22/Mysql-进阶/
作者
Jack Asher
发布于
2024年12月22日
许可协议