1.MySQL逻辑架构大致分为:连接认证层,核心服务层,存储引擎层。
2.锁策略,需要在开销和数据的安全性之间寻求平衡,这种平衡会影响到性能。
3.写锁优先于读锁。
4.行级锁只在存储引擎层实现,而MySQL服务器层没有实现。
5.事务:原子性SQL查询,独立的工作单元。ACID(原子性atomicity,一致性consistency,隔离性isolation,持久性durability)
A:要么做,要不没做。
C:一致性状态间转换,事务最终完成提交才是转换完成。
I:事务间数据修改后的可见性,分不同的隔离级别。
D:事务的影响会一直保留到数据库中(过于绝对,实际需要备份容灾)
6.隔离级别
6.1.read uncommitted(未提交读)未提交,便可读,出现脏数据(可能的错数据)
6.2.read committed(提交读)默认配置,事务执行周期内数据的更改对于其他事务是透明的,不可重复读(执行两次事务,可能的结果不同)
6.3.repeatable read(可重复读)解决了读脏数据的问题,并支持重复读,但是无法解决幻读(在事务的两次执行时间段内有其他事务对该事务操作数据进行了修改),可通过多版本并发控制解决(MVCC,Multiversion Concurrency Control)。
6.4.serializable(可串行化)事务串行执行,对每一行数据都上锁。导致大量的超时和锁争用。
7.InnoDB解决死锁:回滚持有最少行拍他锁的事务。
8.使用事务日志,存储引擎在修改表的数据时只需要修改其内存拷贝,再把该修改行为记录到持久在硬盘上的事务日志中,而不是每次将修改的数据本身持久到磁盘。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix