MySQL数据库的常见考点


1、ACID

image-20230201110516214

事务原理

image-20230201183115209

事务持久性

image-20230201184355749

事务原子性

image-20230201184847275

MVCC基本概念

image-20230201185341645

MVCC基本原理

image-20230201185547843

undo log

image-20230201193124540

undo log版本链

image-20230201193916668

readview

image-20230201195741866

MVCC实现原理

image-20230201200202115

RC读已提交

image-20230201201859451

RR可重复读

image-20230201202757006

MVCC实现原理

image-20230201202953875

总结

image-20230201203504311

2、并发事务引发的问题

image-20230201111810443

3、事务隔离级别

image-20230201112426384

注意:事务隔离级别越高,数据越安全,但性能越低

image-20230201114502158

4、索引

4.1、索引概述

image-20230201121618812

4.2、索引优缺点

image-20230201121723698

4.3、索引结构

二叉树

image-20230201122729877

B-Tree树

image-20230201124016293

B+Tree树

image-20230201125911225

B+Tree优化

image-20230201130137365

Hash索引

image-20230201155613366

Hash索引的特点

image-20230201160329135

面试题

image-20230201161040465

索引分类

image-20230201162108409

image-20230201162309066

聚集索引和二级索引

image-20230201162522169

回表查询

image-20230201162713316

InnoDB主键索引的B+tree高度为多高呢?

image-20230201163329831

索引语法

image-20230201164342554

慢查询日志

image-20230201170827235

SQL性能分析

image-20230201171916941

explain执行计划

image-20230201175550239

image-20230201175947637

共享锁

共享锁,又称读锁、S锁。上厕所就相当于修改操作。当事务给行加了共享锁,此时行只能进行读操作,而不能进行写操作。别的事务也只能给其加共享锁,不能加排他锁。

排他锁

排他锁,又称写锁、X锁。当加了排他锁之后,就相当于把洗手间的门关上了,别人不能进去洗手、化妆之类的。也就是说不能进行写操作以及读操作,其他事务不能给其再加锁了。

对于排他锁大家的理解可能就有些差别,我当初就犯了一个错误,以为排他锁锁住一行数据后,其他事务就不能读取和修改该行数据,其实不是这样的。排他锁指的是一个事务在一行数据加上排他锁后,其他事务不能再在其上加其他的锁。

mysql InnoDB引擎默认的修改数据语句,update,delete,insert都会自动给涉及到的数据加上排他锁,select语句默认不会加任何锁类型,如果加排他锁可以使用select …for update语句,加共享锁可以使用select … lock in share mode语句。

所以加过排他锁的数据行在其他事务种是不能修改数据的,也不能通过for update和lock in share mode锁的方式查询数据,但可以直接通过select …from…查询数据,因为普通查询没有任何锁机制。

猜你喜欢

转载自blog.csdn.net/weixin_54040016/article/details/128841296