刷新
揭秘MySQL索引分类

博主头像 索引的作用 说白了索引就是数据的目录,根据索引去查数据必然比在库中一行记录一行记录的查更快 索引分类 按数据结构分类 Mysql的数据是存储在磁盘中的,每次从磁盘中读取数据都需要进行一次IO。一个表的数据在磁盘上由于插入顺序的原因肯定不是顺序存放,如果按照表字段内容顺序查找,如果一个500万条数据的 ...

Java 26 发布了, 我人麻了。。

博主头像 大家好,我是R哥。 Java 25 刚发布半年之久(Java 25 正式发布),很多人可能还没听说过,现在 Java 26 又来了,我真的人麻了啊。。。 需要注意的是,Java 26 并不是 LTS(长期支持版本),千万不要用在生产环境里,因为它许多特性还在预览阶段,可能会有不兼容的变动。 废话不多 ...

InnoDB存储结构全解析:行页区段与单表2000W行的关系

博主头像 逻辑存储结构 表空间由段(segment)、区(extent)、页(page)、行(row)组成,InnoDB存储引擎的逻辑存储结构大致如下图: 行(row) 数据库表中的记录都是按行(row)进行存放的,每行记录根据不同的行格式,有不同的存储结构。 页(page) 记录是按照行来存储的,但是数据库 ...

MySQL语句执行深度剖析:从连接到执行的全过程

博主头像 执行流程图 MySQL 的架构可以大致划分为四个层次:连接层、服务层、存储引擎层和文件系统层。 连接层:负责对来自客户端的连接进行权限验证,并将连接信息存入连接池中,方便后续的连接复用。 服务层:主要负责 SQL 语句的解析与优化,还包括查询缓存和 MySQL 内置函数的实现。 存储引擎层:提供多种 ...

调试排错 - 线程Dump分析

博主头像 Thread Dump介绍 什么是Thread Dump Thread Dump是非常有用的诊断Java应用问题的工具。每一个Java虚拟机都有及时生成所有线程在某一点状态的thread-dump的能力,虽然各个 Java虚拟机打印的thread dump略有不同,但是 大多都提供了当前活动线程的快 ...

Java 基础 (Java 入门笔记)

博主头像 这篇文章是按照 B 站狂神说的 Java 零基础课程的内容整理的 (实际上就是学习笔记的性质). 希望我能够坚持下去o(≧口≦)o 目录数据类型与转换数据类型基本数据类型进制类型转换强制转换自动转换注意变量和常量变量变量作用域局部变量实例变量类变量常量命名规则运算符算数运算符加, 减, 乘, 除, ...

JVM排查工具单

博主头像 Java 调试入门工具 jps jps是jdk提供的一个查看当前java进程的小工具, 可以看做是JavaVirtual Machine Process Status Tool的缩写。 jps常用命令 jps # 显示进程的ID 和 类的名称 jps –l # 输出输出完全的包名,应用主类名,jar ...

Java对象头:深入理解对象存储的核心机制

博主头像 Java对象结构 实例化一个Java对象之后,该对象在内存中的结构是怎么样的?Java对象(Object实例)结构包括三部分:对象头、对象体和对齐字节,具体下图所示 Java对象的三部分 对象头 对象头包括三个字段,第一个字段叫作Mark Word(标记字),用于存储自身运行时的数据,例如GC标志位 ...

类字节码:揭开Java虚拟机运行机制的神秘面纱

博主头像 概述 计算机是不能直接运行java代码的,必须要先运行java虚拟机,再由java虚拟机运行编译后的java代码。 因为在cpu层面看来计算机中所有的操作都是一个个指令的运行汇集而成的,java是高级语言,只有人类才能理解其逻辑,计算机是无法识别的,所以java代码必须要先编译成字节码文件,jvm才 ...

第一批被龙虾气到的人出现了

博主头像 引言 我朋友,一个脾气温和、情绪稳定的成年人,今天,在电脑前憋出了他今年第一句字正腔圆的国骂。 对象不是甲方,不是队友,而是一个AI——确切说,是一个花了他不少钱、号称能当“私人数字助理”的玩意儿,花名龙虾。 事情得从头说起。那天下午,他喜气洋洋地跟我显摆,说也养了个龙虾,能自动整理AI资讯,能给它 ...

从业务开发视角聊聊可观测体系建设

博主头像 本文探讨了分布式架构下可观测体系的建设实践,提出了基于业务视角的可观测体系建设框架:明确业务核心边界、建立指标体系(业务指标+SLO指标)、构建多维度观测(业务观测、链路观测、异常观测、变更观测)和固化排障路径,以游戏中心项目为例,介绍了项目在问题发现与问题定位上的实践,有效提升了问题发现与故障处理... ...

NIO的零拷贝如何实现高效数据传输?

博主头像 Java NIO零拷贝 在 Java NIO 中的通道(Channel)就相当于操作系统的内核空间(kernel space)的缓冲区,而缓冲区(Buffer)对应的相当于操作系统的用户空间(user space)中的用户缓冲区(user buffer)。 通道(Channel)是全双工的(双向传输 ...

Java 实现企业微信扫码登录

博主头像 一、场景 Web 系统登录页面“企业微信”图标,点击后调取企业微信扫码登录页面,扫码成功后判断系统账号与企业微信用户ID绑定情况,有则直接登录,无则跳转到绑定登录页面,用户手动输入个人账号密码进行绑定,首次绑定后后续无需再绑定。 二、企业微信应用相关配置 1、新建企微应用 进入企微管理后台,应用管理 ...

NIO:解开非阻塞I/O高并发编程的秘密

博主头像 流与块 Standard IO是对字节流的读写,在进行IO之前,首先创建一个流对象,流对象进行读写操作都是按字节 ,一个字节一个字节的来读或写。而NIO把IO抽象成块,类似磁盘的读写,每次IO操作的单位都是一个块,块被读入内存之后就是一个byte[],NIO一次可以读或写多个字节。 I/O 与 NI ...

剑指offer-81、⼆叉搜索树的最近公共祖先

博主头像 题⽬描述 给定⼀个⼆叉搜索树, 找到该树中两个指定节点的最近公共祖先。 对于该题的最近的公共祖先定义:对于有根树T的两个结点p 、q ,最近公共祖先LCA(T,p,q)表示⼀个结点x ,满⾜x 是p 和q 的祖先且x 的深度尽可能⼤。在这⾥,⼀个节点也可以是它⾃⼰的祖先. ⼆叉搜索树是若它的左⼦树不 ...

BIO详解:解锁阻塞IO的使用方式

博主头像 关于同步/异步,阻塞/非阻塞,Unix IO模型,可以先看这篇文章网络系统 - Unix IO模型 BIO概述 阻塞式IO。也就是说io没有就绪的时候,操作IO当前线程会被阻塞。也就是用户线程需要等待IO线程完成 服务器实现模式为一个连接一个线程,也就是说,客户端每当有一个连接请求的时候,服务器就需 ...

PipelinR:在Java中实现优雅的CQRS架构

博主头像 使用中介者模式轻松实现命令查询职责分离,构建高内聚、低耦合的应用系统 一、知识点回顾 1. 什么是CQRS? CQRS是Command Query Responsibility Segregation的缩写,一般称作命令查询职责分离。从字面意思理解,就是将命令(写入)和查询(读取)的责任划分到不同的 ...

<1···456···37>