MySQL 是怎么加锁的? update 没加索引会锁全表? MySQL 记录锁+间隙锁可以防止删除操作而导致的幻读吗? MySQL 死锁了,怎么办? 字节面试:加了什么锁,导致死锁的? 日志篇👇 undo log、redo log、binlog 有什么用? 内存篇👇 揭开Buffer_Pool 的面纱 ...
小林coding mysql笔记 我真是小贤啊 1 人赞同了该文章 二、基础篇 执行一条select语句,发生了什么? 客户端与Mysql建立连接 mysql收到查询语句后,先检查查询缓存(查询缓存记录的是一条查询语句与对应的结果。当然如果这条查询语句涉及的表更新了,就要删除这条缓存了),若有则直接返回给客户端结果;若无,则3 解析器...
图片来源为小林网站(https://xiaolincoding.com/mysql) 连接器 连接都是TCP三次握手,mysql基于TCP协议传输 查看mysql服务被多少客户端连接了 默认的最长的空闲时长,由wait_timeout参数控制,默认是8个小时,也就是28880秒,如果超过这个时间,空闲的连接会总动断开 可以使用kill connection 加上对应的id,就可以关闭对应...
如果write pos 追上了 checkpoint,就意味着redo log 文件满了,这时 MySQL 不能再执行新的更新操作,也就是说 MySQL 会被阻塞(因此所以针对并发量大的系统,适当设置 redo log 的文件大小非常重要),此时会停下来将 Buffer Pool 中的脏页刷新到磁盘中,然后标记 redo log 哪些记录可以被擦除,接着对旧的 redo log...
大家好,我是小林。 在前一篇文章我讲了下 MySQL 的全局锁、表记锁和行级别锁,其中行级锁只提了概念,并没有具体说。 因为行级锁加锁规则比较复杂,不同的场景,加锁的形式还不同,所以这次就来好好介绍下行级锁。 对记录加锁时,加锁的基本单位是 next-key lock,它是由记录锁和间隙锁组合而成的,next-key...
mysql>begin;mysql>select*fromt_testwhereid=1forupdate; 事务会对表中主键 id = 1 的这条记录加上 X 型的记录锁,如果这时候其他事务对这条记录进行删除或者更新操作,那么这些操作都会被阻塞。注意,其他事务插入一条 id = 1 的新记录并不会被阻塞,而是会报主键冲突的错误,这是因为主键有唯一性的约束。
大家好,我是小林。从这篇「执行一条 SQL 查询语句,期间发生然没 mysql binlog redolog undolog update 原创2022-12-11 23:40:001419阅读 HTTPS 一定安全可靠吗? 大家好,我是小林。这个问题的场景是这样的:客户端通过浏览器向服务端发起 HTTPS 请求时,被「假基站」转发 ...
MySQL会将查询分解为多个步骤,通过执行器与存储引擎之间的高效协作,确保数据的准确检索和返回。综上所述,执行一条SELECT语句涉及从解析到执行的一系列步骤,MySQL通过优化器和执行器的紧密合作,确保数据检索的高效与准确性,充分体现了数据库管理系统在数据管理与检索方面的强大功能。
https://xiaolincoding.com/interview/mysql.htmlxiaolincoder added the Vssue label Jul 25, 2024 Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment Assignees No one assigned Labels Vssue Projects None yet Milestone No milestone Development No ...
小林coding真心不建议,所有的博客都是摘抄其他书然后自己写一遍。mysql redis都没看过源码,全是看其他书的,然后再自己讲。还不如看其他权威的经典书籍。操作系统基础推荐操作系统导论,进阶推荐讲linux源码的书籍和自己看linux源码,没看linux源码不能说懂操作系统。_牛