# MySQL 中的 MVCC 是什么?
9 min read
MVCC(Multi-Version Concurrency Control,多版本并发控制)是 MySQL InnoDB 存储引擎实现的一种非锁定读机制,它通过在数据行上维护多个历史版本,使得读写操作可以并发执行而无需相互阻塞,从而在保证事务隔离性的同时,极大地提升了数据库的并发性能。
MVCC(Multi-Version Concurrency Control,多版本并发控制)是 MySQL InnoDB 存储引擎实现的一种非锁定读机制,它通过在数据行上维护多个历史版本,使得读写操作可以并发执行而无需相互阻塞,从而在保证事务隔离性的同时,极大地提升了数据库的并发性能。
【核心定义】 MySQL 执行 SELECT * FROM table 时,内存是否飙升取决于查询的执行模式(是否使用游标/流式处理)和服务端配置,而非简单地与表行数(1000万)线性相关。
MySQL 死锁是指两个或两个以上的事务在执行过程中,因争夺锁资源而造成的一种互相等待的现象,若无外力干预,这些事务都将无法继续执行。
不是,索引数量并非越多越好,因为索引在提升查询性能的同时,也会带来额外的存储开销、写操作性能损耗和维护成本,需要在查询收益和写入代价之间取得平衡。
事务隔离级别是数据库管理系统用于控制多个并发事务之间可见性和相互影响程度的一组标准规则,其本质是在数据一致性、并发性能和数据准确性三者之间进行权衡。
深度分页问题是指在使用 LIMIT offset, size 语法进行大数据量分页查询时,随着 offset 值的增大,查询性能急剧下降的现象。