- mysql 中的锁
- 行锁 select * from tableName where id=123 for share/update 给查询的记录添加 共享锁/排它锁,需要开启事务才生效
- 行锁包括记录锁、间隙锁、临建锁(=记录锁+间隙锁)
InnoDB·以REPEATABLE READ事务隔离级别运行Next Key Lock(临建锁),来解决当前读发生幻读的情况
- 表锁 lock table tableName read/write ,添加表的读/写锁,解锁的方式 为:unlock tables,--不需要开启事务就可以生效
- 全局锁 flush tables with read lock,做全库逻辑备份
- mvcc
- 三个隐藏字段,trx_id(事务id),roll_prt(回滚指针),rowId(不存在唯一键的情况下)
- undolog:记录操作数据的历版本
- readview:读视图(repeat read 隔离级别是 第一次读取的时候放入,rc是最新读取,每次读取都从表中取最新的)
- mysql执行过程-连分忧止血
- 连接器:判断用户及权限
- 分析器:执行语句执行分析,预处理与解析
- 优化器:对sql进行优化
- 执行器:调用存储引擎,执行sql
- 写log:写undolog,redolog,binlog
- sql执行顺序
- from
- join
- on
- where
- group by
- having
- select
- distinct
- order by
- limit
posted @
2023-05-29 14:31
哼自己调
阅读(
18)
评论()
收藏
举报