摘要: 一、概述 在并发编程领域,有两大核心问题:一个是互斥,即同一时刻只允许一个线程访问共享资源;另一个是同步,即线程之间如何通信、协作。主要原因是,对于多线程实现实现并发,一直以来,多线程都存在2个问题: 线程之间内存共享,需要通过加锁进行控制,但是加锁会导致性能下降,同时复杂的加锁机制也会增加编程编码 阅读全文
posted @ 2022-12-16 17:39 夏尔_717 阅读(502) 评论(0) 推荐(0)
摘要: 一、数据结构 数据结构是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。 1.1 数据结构分类 数据结构可按照逻辑结构和存储结构划分 1.1.1 逻辑结构 系统的 阅读全文
posted @ 2022-09-09 18:23 夏尔_717 阅读(2475) 评论(0) 推荐(1)
摘要: 一、概述 java的java.util.concurrent包除了提供底层锁、并发集合外,还提供了一组原子操作的封装类,它们位于java.util.concurrent.atomic包。 Atomic类是通过无锁(lock-free)的方式实现的线程安全(thread-safe)访问。 二、原子类底 阅读全文
posted @ 2022-06-20 22:55 夏尔_717 阅读(321) 评论(0) 推荐(0)
摘要: 一、概述 Java集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射。Collection接口又有3种子类型,List、Set和Queue,再下面是一些抽象类,最后是具体实现类,常用的有ArrayList、LinkedList 阅读全文
posted @ 2022-05-08 18:53 夏尔_717 阅读(145) 评论(0) 推荐(0)
摘要: 一、什么是反向代理? 要理解“反向代理”,我们先从更熟悉的“正向代理”对比入手,两者的核心差异在于代理服务器的“服务对象”不同。 1.1 正向代理 正向代理的典型场景是“FQ”或“内网访问外网”。比如你想访问某个境外网站,直接访问会被限制,此时你会连接一个“代理服务器”,由它帮你向目标网站发起请求, 阅读全文
posted @ 2025-11-03 14:08 夏尔_717 阅读(1) 评论(0) 推荐(0)
摘要: 一、概述 show status是MySQL内置的核心诊断命令,用于实时查看数据库服务器的运行状态指标,涵盖连接数、查询性能、缓存使用、锁等待等关键维度。这些指标如同数据库的“体检报告”,能帮助开发者快速定位性能瓶颈、优化配置参数,是日常运维和故障排查的必备工具。 二、基础语法与分类 2.1 基础语 阅读全文
posted @ 2025-11-02 13:55 夏尔_717 阅读(8) 评论(0) 推荐(0)
摘要: 一、概述 CentOS 7与CentOS 6.x最大的差异之一在于防火墙默认工具:前者采用firewalld作为默认防火墙管理工具,后者则是iptables。本文将详细讲解firewalld的日常配置、iptables的传统用法,以及两种防火墙工具的切换方法,适用于服务器端口开放、安全防护等常见场景 阅读全文
posted @ 2025-11-02 04:11 夏尔_717 阅读(7) 评论(0) 推荐(0)
摘要: 一、概述 在Java开发中,NullPointerException(空指针异常)是最常见的运行时异常之一,通常发生在程序尝试访问或操作一个为null的对象引用时。这种异常不仅会导致程序崩溃,还会增加调试难度。 二、产生原因 2.1 变量未初始化 public class Test { public 阅读全文
posted @ 2025-11-02 03:10 夏尔_717 阅读(5) 评论(0) 推荐(0)
摘要: 一、概述 information_schema提供了对数据库元数据、统计信息以及有关MySQLServer信息的访问(例如:数据库名或表名、字段的数据类型和访问权限等)。该库中保存的信息也可以称为MySQL的数据字典或系统目录。 在每个MySQL实例中都有一个独立的information_schem 阅读全文
posted @ 2025-11-02 01:09 夏尔_717 阅读(2) 评论(0) 推荐(0)
摘要: 一、概述 processlist是MySQL数据库的实时连接监控中心,通过它可直观查看当前所有数据库连接线程的状态(如执行SQL、空闲、锁等待等),是排查慢查询、死锁、连接泄露等性能问题的核心手段。 关键版本变更(必看!)​ 弃用警告:information_schema.processlist表及 阅读全文
posted @ 2025-10-31 18:12 夏尔_717 阅读(3) 评论(0) 推荐(0)
摘要: 一、概述 MySQL慢查询日志是定位性能瓶颈的核心工具,专门记录响应时间超过阈值的SQL语句。 其核心定义为:运行时间超过long_query_time参数(默认10秒)的SQL,会被自动记录到日志中。开启该日志的核心目的,是精准识别执行效率低下的查询语句,为优化提供数据支撑。 默认情况下,MySQ 阅读全文
posted @ 2025-10-21 16:05 夏尔_717 阅读(84) 评论(0) 推荐(0)
摘要: 一、概述 show index语句是MySQL中用于查看表索引信息的语句。它提供了有关表中索引的详细信息,包括索引名称、索引类型、关联的列等。 二、语法与概要描述 2.1 基本语法 SHOW INDEX语句的语法如下: show index from table_name [from db_name 阅读全文
posted @ 2025-10-20 13:10 夏尔_717 阅读(30) 评论(0) 推荐(0)
摘要: 一、概述 mysql的performance schema用于监控mysql server在一个较低级别的运行过程中的资源消耗、资源等待等情况。 特点 提供了一种在数据库运行时实时检查server的内部执行情况的方法。performance_schema 数据库中的表使用performance_sc 阅读全文
posted @ 2025-10-09 16:48 夏尔_717 阅读(29) 评论(0) 推荐(0)
摘要: 一、概述 随着业务量的快速增长,经常会遇到由于关系型数据库(如:MySql)单表数据量增长过大而引发的线上事故;虽然这些事故多数时候是由于不合理的慢SQL而引起的系统雪崩,但有时也会出现由于数据库热点块IO争用而引发的系统性性能下降。总之,单表数据量的无限增长总是会在这样或那样的情况下增加系统的不稳 阅读全文
posted @ 2025-09-30 17:55 夏尔_717 阅读(39) 评论(0) 推荐(0)
摘要: 因为加锁是跟数据库的隔离级别息息相关的。而常用的数据库隔离级别也就RC(读已提交)和RR(可重复读),所以本文分别根据RC(读已提交)和RR(可重复读)隔离级别展开讲述。 一、环境准备 设置数据库隔隔离级别 mysql> set global transaction isolation level 阅读全文
posted @ 2025-09-30 16:45 夏尔_717 阅读(7) 评论(0) 推荐(0)
摘要: 一、概述 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重。 注意:优化有风险,涉足需谨慎! 优化可能带来的问题 优化不总是对一个单纯的环境进行,还很可能是一个复杂的已投产的 阅读全文
posted @ 2025-09-26 20:57 夏尔_717 阅读(29) 评论(0) 推荐(0)
摘要: 一、概述 optimizer_trace是MySQL 5.6引入的一项跟踪功能,它可以跟踪优化器做出的各种决策(比如访问表的方法、各种开销计算、各种转换等),并将跟踪结果记录到information_schema.optimizer_trace表中。此功能默认关闭,开启后,可分析如下语句: sele 阅读全文
posted @ 2025-09-26 17:50 夏尔_717 阅读(34) 评论(0) 推荐(0)
摘要: 一、概述 proxy_set_header是Nginx配置中用于设置代理请求HTTP头部的指令。当Nginx作为反向代理时,它允许自定义从客户端接收到的请求或添加新的请求头,然后将其转发到后端服务器。这对于维护HTTP协议的连贯性、安全性和功能性至关重要。 proxy_set_header指令的语法 阅读全文
posted @ 2025-09-25 16:19 夏尔_717 阅读(147) 评论(0) 推荐(0)
摘要: 一、概述 OpenFeign是一个声明式的Web服务客户端,它使得编写HTTP客户端变得更简单。使用Feign,你只需要创建一个接口并用注解来配置它,Feign会自动完成接口的实现。OpenFeign具有可插拔的注解特性,同时也支持JAX-RS注解和Feign注解。此外,它还支持负载均衡和容错,通过 阅读全文
posted @ 2025-09-05 15:51 夏尔_717 阅读(38) 评论(0) 推荐(0)
摘要: 一、概述 MySQL常用关联算法有三种:合并关联(Merge Join),哈希关联(Hash Join)和嵌套循环关联(Nested Loop Join)。 当联接两个关系时,关联算法对两个关系的处理是不同的。假定:外关系是左侧数据集(驱动表),内关系是右侧数据集(非驱动表、被驱动表)。 比如,A 阅读全文
posted @ 2025-07-13 23:15 夏尔_717 阅读(39) 评论(0) 推荐(0)
摘要: 一、简介 1.1 概述 MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。 MyBatisPlus官网:https://baomidou.com/ 1.2 特性 无侵入:只做增强不做改变,引入它不会对现有工程产生影 阅读全文
posted @ 2025-07-08 19:47 夏尔_717 阅读(341) 评论(0) 推荐(0)
摘要: 一、概述 MyBatis的强大特性之一便是它的动态SQL。如果有使用JDBC或其他类似框架的经验,就能体会到根据不同条件拼接SQL语句有多么痛苦。拼接的时候要确保不能忘了必要的空格,还要注意省掉列名列表最后的逗号。利用动态SQL这一特性可以彻底摆脱这种痛苦。 通常使用动态SQL不可能是独立的一部分, 阅读全文
posted @ 2025-06-29 16:07 夏尔_717 阅读(74) 评论(0) 推荐(0)
摘要: 一、前言 随着业务的发展,项目对应的SpringBoot工程的依赖越来越多。Spring容器需要加载更多组件、解析复杂依赖并执行自动装配,导致项目启动时间显著增长。在日常开发或测试过程中,一旦因为配置变更或者其他热部署不生效的变更时,项目重启就需要等待很长的时间影响代码的交付。加快Spring项目的 阅读全文
posted @ 2025-06-25 14:32 夏尔_717 阅读(109) 评论(0) 推荐(0)
摘要: 一、隐藏索引 1.1 概述 MySQL 8.0开始支持隐藏索引 (invisible index),不可见索引。 隐藏索引不会被优化器使用,但仍然需要进行维护。 语法: -- 创建隐藏索引 CREATE INDEX idx_invisible ON table_name(col) INVISIBLE 阅读全文
posted @ 2025-06-10 19:24 夏尔_717 阅读(112) 评论(0) 推荐(0)