自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL可重复读隔离级别,完全解决幻读了吗

快照读可以解决快照读的幻读当前读可以解决当前读的幻读事务一:快照读事务二:插入。提交事务一:更新(相当于把事务二插入的数据的事务id改成事务一了)事务一:快照读。幻读事务 A 第一次执行普通的 select 语句时生成了一个 ReadView事务 B 向表中新插入了一条 id = 5 的记录并提交事务 A 对 id = 5 这条记录进行了更新操作:在这个时刻,这条新记录的 trx_id 隐藏列的值就变成了事务 A 的事务 id。

2025-04-18 18:50:20 227

原创 MySQL事务隔离级别是怎么实现的?

原:要么全部昨晚,要么都不做一:事务操作前后,数据有完整的约束,数据库保持一致性状态隔:数据库运行并发事务同时对数据进行读写修改,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致久:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。InnoDB 引擎通过什么技术来保证事务的这四个特性的呢?

2025-04-18 18:36:00 898

原创 MySQL中的数据存储

解决这个问题也很简单,就是让链表中相邻的页的物理位置也相邻,这样就可以使用顺序 I/0 了,那么在范围查询(扫描叶子节点)的时候性能就会很高。是段的子单位,每个区大小为 1MB,包含 64 个连续的 16KB 页,通过连续分配减少随机 I/O,提升范围查询效率。的,也就是说,当需要读一条记录的时候,并不是将这个行记录从磁盘读出来,而是以页为单位,将其整体读入内存。最后存放的就是列的值。表空间由多个段组成,每个段由多个区组成,段分为数据段,索引段和回滚段。的,每行记录根据不同的行格式,有不同的存储结构。

2025-04-18 16:31:12 761

原创 MySQL的执行流程

面试向,总分结构:执行一条 SQL 查询语句,MySQL 主要经历连接、解析和执行三大阶段。首先,负责与客户端建立 TCP 连接,管理连接状态并验证用户身份,确保用户有权限执行操作。其次,阶段通过词法分析和语法分析,将 SQL 语句转化为语法树,检查语句是否符合 MySQL 语法规则。最后,检查表和字段是否存在,由优化器基于查询成本选择最优执行计划,例如确定使用哪个索引;阶段根据执行计划调用存储引擎接口,读取数据并返回结果给客户端。MySQL 大多数的核心功能模块都在这实现,主要包括等。

2025-04-18 10:48:48 602

原创 反射,动态代理面试怎么搞

Java 反射是一种运行时动态操作类的机制,可以在程序运行时获取类的信息(如方法、构造器、字段等),甚至调用它们。它的本质是操作类的元数据(Class 对象)。反射广泛用于框架设计,比如、JUnit 都在使用反射创建对象、注入属性或调用方法,实现解耦和动态扩展。Java 动态代理是一种在运行时创建代理对象的机制,可以在不修改目标对象的前提下,增强其方法调用行为,比如添加日志、事务、权限校验等。代理对象不直接实现接口,而是在运行时生成,并通过拦截来控制行为。

2025-04-16 00:59:08 715

原创 Redis学习2

总结一句话就是:由于网络问题,集群节点之间失去联系。主从数据不同步;重新平衡选举,产生两个主服务(发送端还在向旧主节点发送数据,而旧主节点也缓存了)。等网络恢复,旧主节点会降级为从节点,再与新主节点进行同步复制的时候,由于从节点(旧主节点)会清空自己的缓冲区,所以导致之前客户端写入的数据丢失了。惰性删除策略的做法是,不主动删除过期键,每次从数据库访问 key 时,都检测 key 是否过期,如果过期则删除该 key。

2025-04-15 13:49:18 1045

原创 一些乱七八糟八股(JAVA基础)

Java 中的基本数据类型(int、char、boolean 等)是值类型,没有面向对象的特性。为了让它们也能像对象一样使用,Java 提供了对应的包装类包装类是对象类型,继承自 Object,可以调用方法、用于集合类等。Java 为了提高性能和减少内存开销,在某些包装类中实现了对象缓存机制。具体来说,对于常用的小范围值,Java 会预先创建这些值的对象并缓存起来。当程序需要这些值时,直接返回缓存中的对象,而不是每次都创建新对象。静态缓存池:在类加载时预创建一组常用值的对象。

2025-04-10 16:50:24 867

原创 美团网络面经整理

库存扣减成功但异步调用失败,我会优先用消息队列重试。如果业务允许,也可以回滚库存。这种设计在我的项目中有效平衡了性能和一致性。我通过持久化(RDB 和 AOF)、主从复制、哨兵模式和数据双写结合项目需求来保证 Redis 数据不丢失。具体用哪种方案取决于数据的关键性和性能要求。在“智能点评系统”和“类外卖项目”中,这些设计让我在高并发下既保证了性能,又最大限度降低了数据丢失风险。线程安全是指在多线程环境下,多个线程同时访问共享资源时,程序仍能正确执行,不会出现数据不一致或意外行为。如何实现。

2025-04-08 17:20:00 813

空空如也

空空如也

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

TA关注的人

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