自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 MySQL 引擎

存储引擎是MySQL的核心插件,负责数据的存储与访问。InnoDB作为默认引擎,支持事务、行锁、外键和崩溃恢复,适合高并发写入场景。MyISAM读写速度快但不支持事务和外键,适用于读密集型应用。MEMORY引擎将数据存储在内存中,速度快但非持久化,适合临时数据处理。建议优先选择InnoDB,MyISAM和MEMORY仅适用于特定场景。

2025-07-02 08:54:07 827

原创 MySQL 锁机制

一样也是在插入数据的时候,会为被 AUTO_INCREMENT 修饰的字段加上轻量级锁,然后给该字段赋值一个自增的值,就把这个轻量级锁释放了,而不需要等待整个插入语句执行完后才释放锁。那么,一个事务在持有 自增锁 的过程中,其他事务的如果要向该表插入语句都会被阻塞,从而保证插入数据时,被 AUTO_INCREMENT 修饰的字段的值是连续递增的。在插入数据时,会加一个表级别的自增锁,然后为被 AUTO_INCREMENT 修饰的字段赋值递增的值,等插入语句执行完成后,才会把AUTO-INC 锁释放掉。

2025-06-27 23:04:33 863

原创 MySQL Buffer Pool

BufferPool是InnoDB存储引擎核心的内存缓存区,用于缓存磁盘数据页和索引页,通过内存操作提升数据库性能。其核心价值在于弥合内存与磁盘的速度差距,采用改进的LRU机制管理缓存页,包含三大链表:LRU、Free和Flush列表。配置时需重点关注innodb_buffer_pool_size(建议设为物理内存50%-75%),并通过缓存命中率(应高于99%)监控性能。BufferPool设计有效减少了磁盘I/O,优化了读写效率,是MySQL性能调优的关键环节。

2025-06-24 14:06:59 367

原创 MySQL 三大日志

本文系统介绍了MySQL的三大日志机制:UndoLog、RedoLog和Binlog。UndoLog记录数据修改前的状态,支持事务回滚和MVCC;RedoLog采用WAL机制确保事务持久性,通过物理日志实现崩溃恢复;Binlog记录所有数据变更操作,用于主从复制和时间点恢复。文章重点解析了两阶段提交机制,通过prepare和commit两个阶段协调RedoLog和Binlog的写入,确保数据一致性。三者协同工作,共同保障MySQL的事务特性、数据持久性和高可用性。

2025-06-23 13:59:01 1011

原创 MySQL MVCC 原理

MVCC(多版本并发控制)是数据库处理并发访问的核心技术,通过保存数据多个版本实现读写并行。InnoDB实现MVCC依靠三大组件:隐藏列(记录事务ID和回滚指针)、UndoLog(存储历史版本)和ReadView(判断数据可见性)。该技术支持读已提交(RC)和可重复读(RR)隔离级别,在RC下每次查询生成新ReadView可能导致不可重复读,而RR下复用ReadView确保事务内一致性。MVCC通过"读不阻塞写,写不阻塞读"显著提升并发性能,但需要额外存储和维护版本链的开销。

2025-06-22 10:53:06 886

原创 MySQL 语句执行顺序

逻辑顺序关键字输入虚拟表核心动作输出虚拟表是否可用别名?1FROMJOIN原始表构建数据源,通过ON过滤,处理OUTER JOINVT12WHEREVT1过滤行VT2否3GROUP BYVT2将行合并成分组VT3否4HAVINGVT3过滤分组VT4否(MySQL有扩展支持)5SELECTVT4选择列,计算表达式,生成别名VT56DISTINCTVT5去除重复行VT67ORDER BYVT6对结果进行排序VT7是8LIMITVT7选取最终的子集最终结果是。

2025-06-21 10:08:51 1031

原创 SpringBoot 自动装配原理

启动:通过注解启动自动配置流程。加载候选配置通过机制,扫描所有 jar 包中的(或.imports) 文件,加载所有候选的类。按需激活:利用系列注解,对每一个候选配置类进行条件判断。只有满足条件的配置类才会生效。Bean 注入:生效的自动配置类会创建所需的 Bean,并将其放入 Spring 容器,供开发者随时注入使用。这个机制完美地实现了“开箱即用”,同时又保留了高度的扩展性(用户可以随时自定义配置来覆盖自动配置)。

2025-06-15 10:50:34 1004

原创 循环依赖问题

本文分析了Spring框架中常见的循环依赖问题,即多个Bean相互引用形成闭环导致无法加载的情况。重点讲解了Spring通过三级缓存机制(成品缓存、半成品缓存和工厂缓存)解决单例模式下Setter/字段注入的循环依赖问题。同时指出Spring无法解决的两种场景:构造器注入和多例(prototype)作用域。文章提供了多种解决方案:包括代码重构、@Lazy注解延迟加载、@PostConstruct后置处理以及事件发布机制等。最后强调尽管Spring提供了解决方法,循环依赖仍被视为设计缺陷,推荐通过优化类结构来

2025-06-11 11:14:36 559

原创 跨域问题解决(CORS)

解决跨域问题三种方法

2024-06-29 13:32:01 711 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除