# MySQL 是如何实现事务的?
9 min read
MySQL 的事务是通过其存储引擎层(特别是 InnoDB)的多版本并发控制(MVCC)、锁机制、日志系统(Redo/Undo Log)以及事务隔离级别的组合来实现的,旨在保证 ACID 特性。
MySQL 的事务是通过其存储引擎层(特别是 InnoDB)的多版本并发控制(MVCC)、锁机制、日志系统(Redo/Undo Log)以及事务隔离级别的组合来实现的,旨在保证 ACID 特性。
COUNT() 是一个聚合函数,用于统计结果集的行数,但根据传入参数的不同,其统计逻辑和性能表现存在差异。
回表是指在使用非聚簇索引(二级索引)进行查询时,需要根据索引中存储的主键值,再次访问聚簇索引(主键索引)的数据页,以获取完整行数据的额外磁盘I/O操作。
MVCC(Multi-Version Concurrency Control,多版本并发控制)是 MySQL InnoDB 存储引擎实现的一种非锁定读机制,它通过在数据行上维护多个历史版本,使得读写操作可以并发执行而无需相互阻塞,从而在保证事务隔离性的同时,极大地提升了数据库的并发性能。
【核心定义】 MySQL 执行 SELECT * FROM table 时,内存是否飙升取决于查询的执行模式(是否使用游标/流式处理)和服务端配置,而非简单地与表行数(1000万)线性相关。
MySQL 死锁是指两个或两个以上的事务在执行过程中,因争夺锁资源而造成的一种互相等待的现象,若无外力干预,这些事务都将无法继续执行。