后端开发

JAVA系列课程

Hollis,阿里巴巴技术专家《Java工程师成神之路》系列文章作者,热衷于分享计算机编程相关技术,博文全网阅读量上千万。

了解更多
提升MySQL性能的秘密武器:索引下推技术全解析
MySQL索引下推(Index Condition Pushdown,ICP)是一种优化技术,旨在提高查询效率,尤其是在使用复合索引的情况下。通过在索引查找阶段就进行条件过滤,减少需要读取的数据行,从而降低I/O开销和提高查询性能。 一、索引下推基本概念 在进行查询时,MySQL通常会先通过索引找到符合条件的行,然后再通过这些行去数据表中读取完整的记录。索引下推的做法是将某些过滤条件“下推”到索引查找阶段,使得只有符合条件的行才会被读取,从而减少不必要的I/O操作。 实现原理 MySQL索引下推的实现依赖于以下几个步骤: 索引查找:在查找时,使用索引确定符合条件的记录位置。 条件下推:对于索引中找到的每一条记录,MySQL会根据下推的条件(如WHERE子句中的条件)进行过滤。 返回结果:只有符合下推条件的记录会被返回,避免了不必要的全表扫描。 具体来说,当执行包含多个条件的查询时,MySQL会分析条件并决定哪些条件可以在索引层面进行过滤。这使得系统在早期就能淘汰不符合条件的数据,从而加速查询。 二、如何开启MySQL索引下推 在MySQL...
高效解决分布式事务!两阶段提交(2PC)详解与优化策略
分布式事务是指在分布式系统中,由多个独立的服务或数据库参与的事务,确保这些分布式节点上的操作能够一致完成或回滚,从而保证数据的一致性。 一、两阶段提交(2PC) 将事务分为准备阶段和提交阶段。各节点在准备阶段确认操作无误后再提交,在遇到错误时会回滚。在2PC中,有两个核心角色,协调者、参与者。 优点:能保证各参与节点数据的一致性,适用于对数据一致性要求高的场景。 缺点:性能开销大(锁定资源时间较长)、可能会出现“协调者单点故障”问题,导致系统阻塞。 准备阶段: (1)协调者向所有参与者发送commit请求,询问是否可以提交事务,并等待答复。 (2)各参与者开始准备执行事务,将uodo...
阿里云对象存储OSS全揭秘:超大文件存储利器
一、什么是对象存储? 对象存储(Object Storage...
超详细!Redis分布式锁最佳实践与高效优化策略
一、基于Redis实现分布式锁 (1)基于Lua脚本(包含SETNX...
分布式系统中的CAP理论及三要素优化策略
一、什么是CAP定理 CAP定理指出,在分布式系统中,无法同时满足一致性、可用性和分区容错性这三个特性。通常需要在一致性和可用性之间进行取舍,因为分区容错性对于分布式系统而言几乎是必不可少的。 CAP定理:C(数据一致性)、A(可用性)、P(分区容错性) (1)C全称Consistency(一致性)...
深入浅出 Zookeeper 分布式锁:轻松上手高效实现!
一、基于Zookeeper实现分布式锁 通过ZooKeeper的节点创建与删除来实现分布式锁,使用临时节点(防止死锁)和顺序节点(可以利用锁释放的事件监听机制,来实现阻塞监听式的分布式锁)来管理锁的获取与释放。 也可通过使用ZooKeeper的一个客户端Curator,Curator提供的InterProcessMutex是分布式锁的实现,acquire方法用于获取锁,release方法用于释放锁。 实现原理:Zookeeper是一个分布式协调服务,分布式协调主要是来解决分布式系统中多个应用之间的数据一致性,Zookeeper内部的数据存储方式类似于文件目录形式的存储结构。在Zookeeper中的指定路径下创建临时节点,然后客户端根据当前路径下的节点状态来判断是否加锁成功。 获取锁: 创建一个临时序列节点,代表当前请求的锁。 获取当前根节点下的所有子节点并进行排序。 检查当前节点是否是最小的节点,如果是,则获取锁成功。 如果不是,则设置一个观察者,等待前一个节点的删除。 释放锁:...
基于MySQL打造高效分布式锁,实现数据一致性
一、基于数据库实现分布式锁 (1)利用数据库行级锁定功能实现悲观锁 在操作数据期间,通过select...
Java异常处理全解析:提高代码健壮性的重要知识点
一、什么是异常处理 异常处理是程序设计中用于捕获和处理运行时错误的机制。异常分为两大类,一个是Checked异常,一个是Runtime异常。 异常分类结构: Throwable类主要方法: getMessage()...