当前位置: 首页 > news >正文

MySQL 面试知识点详解(索引、存储引擎、事务与隔离级别、MVCC、锁机制、优化)

一、索引基础概念

1 索引是什么?
  • 定义:索引是帮助MySQL高效获取数据的有序数据结构,类似书籍的目录。
  • 核心作用:减少磁盘I/O次数,提升查询速度(以空间换时间)。
2 索引的优缺点
优点缺点
加速查询(WHERE、JOIN、ORDER BY)占用磁盘空间
保证数据唯一性(唯一索引)增删改操作变慢(维护索引)
加速表间连接过多索引增加优化器选择成本

2、索引数据结构

1. B+树(默认结构)
  • 特点

    • 多叉平衡树,层数少(3~4层可存千万级数据)。
    • 叶子节点存储数据(InnoDB存主键值或完整数据行)。
    • 叶子节点通过指针串联,支持范围查询。
  • B+树 vs B树

    对比项B+树B树
    数据存储位置仅叶子节点存数据所有节点均可存数据
    查询稳定性稳定(查询路径长度一致)不稳定
    范围查询高效(叶子节点链表连接)需中序遍历
2. 哈希索引(MEMORY引擎)
  • 特点
    • 基于哈希表,精确查询O(1)时间复杂度。
    • 不支持范围查询和排序,仅适合等值查询。

3、索引类型与使用场景

1. 索引分类
类型说明示例
主键索引唯一标识,不允许NULLPRIMARY KEY (id)
唯一索引列值唯一,允许NULLUNIQUE KEY (email)
普通索引无唯一性约束INDEX idx_name (name)
联合索引多列组合索引INDEX idx_age_name (age,name)
全文索引文本内容分词搜索(InnoDB支持)FULLTEXT (content)
2. 聚簇索引 vs 非聚簇索引
对比项聚簇索引(InnoDB)非聚簇索引(MyISAM)
数据存储索引与数据文件绑定索引与数据文件分离
主键查询直接定位数据行需回表查询(二次查找)
叶子节点内容存储完整数据行存储数据行的物理地址

二、存储引擎

1. InnoDB vs MyISAM
特性InnoDBMyISAM
事务支持✅ ACID 事务支持❌ 不支持事务
锁机制行级锁(默认)、表级锁、间隙锁表级锁(读锁/写锁)
外键约束✅ 支持❌ 不支持
崩溃恢复✅ Redo/Undo Log 保证数据恢复❌ 需手动修复表
全文索引✅(5.6+版本)✅ 原生支持
适用场景高并发读写、OLTP(如电商、支付)读多写少、静态数据(如日志、报表)
文件结构.ibd(数据+索引).frm(表结构)、.MYD(数据)、.MYI(索引)

核心区别

  • 事务与锁粒度:InnoDB 通过行级锁和 MVCC 支持高并发,MyISAM 表锁在写入时阻塞其他操作。
  • 数据完整性:InnoDB 支持外键约束和崩溃自动恢复,MyISAM 无此功能。
2. 其他存储引擎
  • MEMORY:数据存储在内存中,读写极快但重启丢失,适用于临时表或缓存。
  • ARCHIVE:压缩存储历史数据,适合归档场景,不支持索引。

三、事务与隔离级别

1. ACID 特性
  • 原子性(Undo Log):事务操作要么全成功,要么全失败。
  • 一致性:事务前后数据满足完整性约束(如主键唯一)。
  • 隔离性(MVCC + 锁):通过隔离级别控制并发事务的可见性。
  • 持久性(Redo Log):事务提交后数据持久化到磁盘。
2. 隔离级别与问题
隔离级别脏读不可重复读幻读实现方式
读未提交无锁
读已提交 (RC)MVCC + 行锁
可重复读 (RR)❌(InnoDB 通过间隙锁解决)MVCC + 间隙锁
串行化表级锁

四、MVCC(多版本并发控制)

MySQL中的MVCC(多版本并发控制)是一种用于提高数据库并发性能的机制,通过维护数据的多个版本来实现非锁定读,从而减少读写操作的冲突。

1. MVCC 的核心思想

MVCC允许不同事务看到数据的不同版本,通过为每个修改操作创建新版本(而非直接覆盖旧数据),实现读写操作的并发执行。读操作访问快照(历史版本),写操作创建新版本,从而避免加锁阻塞。


2. MVCC 的核心组件

(1)隐藏字段

InnoDB为每行数据添加两个隐藏字段:

  • DB_TRX_ID:记录最后一次修改该行的事务ID。
  • DB_ROLL_PTR:回滚指针,指向该行的上一个版本(Undo Log中的记录)。
(2)Undo Log
  • 作用:存储数据的历史版本,用于事务回滚和MVCC读取旧版本。
  • 结构:每次修改操作(INSERT/UPDATE/DELETE)均生成对应的Undo Log,形成版本链。例如:
    • INSERT操作记录删除的Undo Log。
    • DELETE操作记录插入的Undo Log。
    • UPDATE操作记录反向更新的Undo Log。
  • 清理机制:当无事务需要旧版本时,通过Purge线程清理过期Undo Log。
(3)Read View(一致性视图)
  • 作用:决定事务能看到哪些数据版本,根据隔离级别生成不同策略。
  • 结构
    • m_ids:生成Read View时活跃(未提交)的事务ID列表。
    • min_trx_id:活跃事务中的最小ID。
    • max_trx_id:下一个将分配的事务ID(当前最大ID+1)。
    • creator_trx_id:创建该Read View的事务ID(仅当自身有修改时存在)。

3. 数据可见性判断规则

事务通过Read View检查数据行的DB_TRX_ID,判断版本可见性:

  1. 已提交且早于所有活跃事务
    trx_id < min_trx_id → 可见。
  2. 由当前事务自身修改
    trx_id == creator_trx_id → 可见。
  3. 未提交或在Read View之后开启
    trx_id >= max_trx_id → 不可见。
  4. 活跃事务中的未提交修改
    trx_idm_ids列表中 → 不可见。
  5. 已提交但位于活跃事务范围内
    其他情况 → 可见。

事务遍历版本链,直到找到满足条件的版本或链尾(表示数据不可见)。


4. 不同隔离级别的实现

  • READ COMMITTED
    每次SELECT生成新的Read View,总能读取最新提交的数据。
  • REPEATABLE READ(默认):
    首次SELECT生成Read View,后续读操作复用该视图,保证可重复读。
  • SERIALIZABLE
    退化为加锁读写,不使用MVCC。

5. MVCC 工作流程示例

假设事务A(ID=100)执行查询:

  1. 生成Read View:活跃事务ID列表为[150, 160],min_trx_id=150max_trx_id=200
  2. 读取数据行
    • 当前行DB_TRX_ID=90(小于150且未在活跃列表)→ 可见。
    • 若行DB_TRX_ID=170(介于150-200且不在活跃列表)→ 可见。
    • 若行DB_TRX_ID=150(在活跃列表中)→ 不可见,沿版本链查找更早版本。

五、锁机制

1. 锁类型
分类维度类型说明
操作粒度表锁锁定整张表(MyISAM 默认),并发度低。
行锁锁定单行数据(InnoDB 默认),并发度高,但可能死锁。
锁模式共享锁(S锁)允许其他事务读,阻止写操作(SELECT ... LOCK IN SHARE MODE)。
排他锁(X锁)阻止其他事务读写(SELECT ... FOR UPDATE)。
锁范围间隙锁锁定索引记录的间隙,防止插入(解决幻读)。
意向锁表级锁,用于快速判断表中是否存在行锁(IS/IX 锁)。
2. 锁优化建议
  • InnoDB
    • 通过索引减少锁范围,避免全表扫描。
    • 控制事务大小,减少锁持有时间。
  • MyISAM
    • 设置 low_priority_updates=1 提升读优先级。
    • 启用并发插入(concurrent_insert=1)减少写阻塞。

六、数据库优化

1. SQL 优化
  • 索引优化
    • 避免 SELECT *,使用覆盖索引减少回表。
    • 联合索引遵循最左前缀原则。
  • 查询优化
    • 避免 LIKE '%前缀',改用全文索引或倒排索引。
    • 拆分复杂查询,减少临时表使用。
2. 架构优化
  • 读写分离:主库处理写操作,从库处理读操作。
  • 分库分表:按业务或数据量分片(如水平分表)。
  • 缓存策略:使用 Redis 缓存热点数据,减少数据库压力。
3. 设计优化
  • 字段类型:优先使用整型、ENUM 替代字符串,减少存储空间。
  • 避免 NULL:NULL 增加查询复杂度,尽量设置默认值。

七、高频面试题

  1. InnoDB 如何解决幻读?

    • RR 隔离级别下,通过 间隙锁 锁定索引范围,阻止其他事务插入新数据。
  2. 什么是 MVCC?

    • 多版本并发控制,通过事务版本链和 ReadView 实现非锁定读,减少锁冲突。
  3. 如何避免死锁?

    • 按固定顺序访问资源,减少事务粒度,设置合理的超时时间。
  4. 索引失效的常见场景?

    • 对索引列使用函数或运算,OR 连接非索引列,隐式类型转换。
  5. MySQL中的日志系统

    • Bin Log:用于主从复制和数据恢复(逻辑日志)。
    • Redo Log:保证事务持久性(物理日志)。
    • Undo Log:保证事务原子性(逻辑日志)。

相关文章:

MySQL 面试知识点详解(索引、存储引擎、事务与隔离级别、MVCC、锁机制、优化)

一、索引基础概念 1 索引是什么&#xff1f; 定义&#xff1a;索引是帮助MySQL高效获取数据的有序数据结构&#xff0c;类似书籍的目录。核心作用&#xff1a;减少磁盘I/O次数&#xff0c;提升查询速度&#xff08;以空间换时间&#xff09;。 2 索引的优缺点 优点缺点加速…...

JS API

const变量优先 即对象、数组等引用类型数据可以用const声明 API作用和分类 DOM (ducument object model) 操作网页内容即HTML标签的 树状模型 HTML中标签 JS中对象 最大对象 document 其次大 html 以此类推 获取DOM对象 CSS 中 使用选择器 JS 中 选多个 时代的眼泪 修…...

hackmyvm-Principle

近况: 很难受、 也很累。 但是庆幸靶机很好 正值清明时节 清明时节雨纷纷 &#x1f327;️&#xff0c;路上行人欲断魂 &#x1f622;。 靶机地址 信息收集 主机发现 端口扫描 80端口仅仅是一个nginx 的欢迎界面而已 robots.txt的内容 hi.html的内容 hackme不存在 investigat…...

小刚说C语言刷题——第14讲 逻辑运算符

当我们需要将一个表达式取反&#xff0c;或者要判断两个表达式组成的大的表达式的结果时&#xff0c;要用到逻辑运算符。 1.逻辑运算符的分类 (1)逻辑非(!) &#xff01;a&#xff0c;当a为真时&#xff0c;&#xff01;a为假。当a为假时&#xff0c;&#xff01;a为真。 例…...

池化技术的深度解析与实践指南【大模型总结】

池化技术的深度解析与实践指南 池化技术作为计算机系统中的核心优化手段&#xff0c;通过资源复用和预分配机制显著提升系统性能。本文将从原理、实现到最佳实践&#xff0c;全方位剖析池化技术的核心要点&#xff0c;并结合实际案例说明其应用场景与调优策略。 一、池化技术的…...

基于Java的区域化智慧养老系统(源码+lw+部署文档+讲解),源码可白嫖!

摘 要 时代在飞速进步&#xff0c;每个行业都在努力发展现在先进技术&#xff0c;通过这些先进的技术来提高自己的水平和优势&#xff0c;区域化智慧养老系统当然不能排除在外。区域化智慧养老系统是在实际应用和软件工程的开发原理之上&#xff0c;运用Java语言、JSP技术以及…...

2025年3月 Scratch 图形化(一级)真题解析 中国电子学会全国青少年软件编程等级考试

2025.03 Scratch图形化编程等级考试一级真题试卷 一、选择题 第 1 题 气球初始位置如下图所示&#xff0c;scratch运行下列程序&#xff0c;气球会朝哪个方向移动&#xff1f;&#xff08; &#xff09; A.水平向右 B.垂直向下 C.水平向左 D.垂直向上 答案&#xff1a…...

Docker 命令简写配置

alias dpsdocker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}" 配置好后&#xff0c;需要输入&#xff1a; source ~/.bashrc 后生效...

linux signal up/down/down_interruptiable\down_uninterruptiable使用

在Linux内核中&#xff0c;down, down_interruptible, down_killable, 和 up 是用于操作信号量&#xff08;semap hores&#xff09;的函数&#xff0c;它们用于进程同步和互斥。以下是对这些函数的简要说明。 1&#xff0c;down(&sem): 这个函数用于获取信号量。如果信号…...

【嵌入式-stm32电位器控制以及旋转编码器控制LED亮暗】

嵌入式-stm32电位器控制LED亮暗 任务1代码1Key.cKey.hTimer.cTimer.hPWM.cPWM.hmain.c 实验现象1任务2代码2Key.cKey.hmain.c 实验现象2问题与解决总结 源码框架取自江协科技&#xff0c;在此基础上做扩展开发。 任务1 本文主要介绍利用stm32f103C8T6实现电位器控制PWM的占空比…...

Mysql 中 ACID 背后的原理

在 MySQL 中&#xff0c;ACID 是事务处理的核心原则&#xff0c;用于保证数据库在执行事务时的可靠性、数据一致性和稳定性。ACID 是四个关键特性的首字母缩写&#xff0c;分别是&#xff1a;Atomicity&#xff08;原子性&#xff09;、Consistency&#xff08;一致性&#xff…...

【算法】简单数论

模运算 a m o d b a − ⌊ a / b ⌋ b a\ mod \ b a - \lfloor a / b \rfloor \times b a mod ba−⌊a/b⌋b n m o d p n \ mod\ p n mod p得到的结果的正负至于被除数 n n n有关 模运算的性质&#xff1a; ( a b ) m o d m ( ( a m o d m ) ( b m o d m ) ) m o d m …...

mybatis慢sql无所遁形

痛点问题&#xff1a; 扫描项目的慢sql 并提出优化建议 开源项目地址&#xff1a;gitee&#xff1a;mybatis-sql-optimizer-spring-boot-starter: 这个starter可以帮助开发者在开发阶段发现SQL性能问题&#xff0c;并提供优化建议&#xff0c;从而提高应用程序的数据库访问效…...

MCP有哪些比较好的资源?

MCP&#xff08;Model Context Protocol&#xff09;是一种由Anthropic公司推出的开放协议&#xff0c;旨在为AI模型与开发环境之间提供统一的上下文交互接口。目前&#xff0c;围绕MCP协议的资源非常丰富&#xff0c;以下是一些比较好的MCP资源推荐&#xff1a; Smithery Smit…...

Nginx功能及应用全解:从负载均衡到反向代理的全面剖析

Nginx作为一款开源的高性能HTTP服务器和反向代理服务器&#xff0c;凭借其高效的资源利用率和灵活的配置方式&#xff0c;已成为互联网领域中最受欢迎的Web服务器之一。无论是作为HTTP服务器、负载均衡器&#xff0c;还是作为反向代理和缓存服务器&#xff0c;Nginx的多种功能广…...

FreeRTOS/任务创建和删除的API函数

任务的创建和删除本质就是调用FreeRTOS的API函数 API函数描述xTaskCreate()动态方式创建任务xTaskCreateStatic()静态方式创建任务vTaskDelete()删除任务 动态创建任务 任务的任务控制块以及任务的占空间所需的内存&#xff0c;均由FreeRTOS从FreeRTOS管理的堆中分配 静态创建…...

【jvm】GC评估指标

目录 1. 说明2. 吞吐量&#xff08;Throughput&#xff09;3. 暂停时间&#xff08;Pause Time&#xff09;4. 内存占用&#xff08;Footprint&#xff09;5. 频率&#xff08;Frequency&#xff09;6. 对象晋升率&#xff08;Promotion Rate&#xff09;7. 内存分配速率&#…...

数据集(Dataset)和数据加载器(DataLoader)-pytroch学习3

pytorch网站学习 处理数据样本的代码往往会变得很乱、难以维护&#xff1b;理想情况下&#xff0c;我们希望把数据部分的代码和模型训练部分分开写&#xff0c;这样更容易阅读、也更好维护。 简单说&#xff1a;数据和模型最好“分工明确”&#xff0c;不要写在一起。 PyTor…...

影响RTOS实时性的因素有哪些?

目录 1、任务调度延迟 2、中断处理延迟 3、系统负载 4、任务优先级反转 5、时钟精度 6、内存管理 影响RTOS实时性的因素主要包括任务调度延迟、中断处理延迟、系统负载、任务优先级反转、时钟精度、内存管理等。 1、任务调度延迟 任务调度器是RTOS的核心&#xff0c;当…...

二叉树 递归

本篇基于b站灵茶山艾府的课上例题与课后作业。 104. 二叉树的最大深度 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&…...

ZLMediaKit 源码分析——[5] ZLToolKit 中EventPoller之延时任务处理

系列文章目录 第一篇 基于SRS 的 WebRTC 环境搭建 第二篇 基于SRS 实现RTSP接入与WebRTC播放 第三篇 centos下基于ZLMediaKit 的WebRTC 环境搭建 第四篇 WebRTC学习一&#xff1a;获取音频和视频设备 第五篇 WebRTC学习二&#xff1a;WebRTC音视频数据采集 第六篇 WebRTC学习三…...

【51单片机】2-6【I/O口】电动车简易防盗报警器实现

1.硬件 51最小系统继电器模块震动传感器模块433M无线收发模块 2.软件 #include "reg52.h" #include<intrins.h> #define J_ON 1 #define J_OFF 0sbit switcher P1^0;//继电器 sbit D0_ON P1^1;//433M无线收发模块 sbit D1_OFF P1^2; sbit vibrate …...

windows下载安装远程桌面工具RealVNC-Server教程(RealVNC_E4_6_1版带注册码)

文章目录 前言一、下载安装包二、安装步骤三、使用VNC-Viewer客户端远程连接&#xff0c;输入ip地址&#xff0c;密码完成连接 前言 在现代工作和生活中&#xff0c;远程控制软件为我们带来了极大的便利。RealVNC - Server 是一款功能强大的远程控制服务器软件&#xff0c;通过…...

C语言的操作系统

C语言的操作系统 引言 操作系统是一种系统软件&#xff0c;它管理计算机硬件和软件资源&#xff0c;并为计算机程序提供公共服务。在现代计算机科学中&#xff0c;操作系统是不可或缺的组成部分&#xff0c;而C语言则是实现高效操作系统的主要编程语言之一。本文将探讨C语言在…...

selectdb修改表副本

如果想修改doris&#xff08;也就是selectdb数据库&#xff09;表的副本数需要首先确定是否分区表&#xff0c;当前没有数据字典得知哪个表是分区的&#xff0c;只能先show partitions看结果 首先&#xff0c;副本数不应该大于be节点数 其次&#xff0c;修改期间最好不要跑业务…...

leetcode数组-有序数组的平方

题目 题目链接&#xff1a;https://leetcode.cn/problems/squares-of-a-sorted-array/ 给你一个按 非递减顺序 排序的整数数组 nums&#xff0c;返回 每个数字的平方 组成的新数组&#xff0c;要求也按 非递减顺序 排序。 输入&#xff1a;nums [-4,-1,0,3,10] 输出&#xff…...

【python中级】关于Cython 的源代码pyx的说明

【python中级】关于Cython 的源代码pyx的说明 1.背景2.编译3.语法1.背景 Cython 是一个编程语言和工具链,用于将 Python 代码(或类 Python 的代码)编译成 C 语言,再进一步生成高性能的 Python 扩展模块(.so 或 .pyd 文件)。 在 Python 中,.pyx 文件是 Cython 的源代码文…...

开放最短路径优先 - OSPF【LSA详细】

目录 LSA的头部结构 LSA类型 LSA数据包 LSA的主要作用是传递路由信息。 LSA的头部结构 共占20个字节&#xff0c;不同类型的LSA头部字段部分都是相同的。 链路状态老化时间(Link-State Age) 2个字节。指示该条LSA的老化时间&#xff0c;即它存在了多长时间&#xff0c;单位…...

PyTorch:解锁AI新时代的钥匙

揭开PyTorch面纱 对于许多刚开始接触人工智能领域的朋友来说&#xff0c;PyTorch这个名字或许既熟悉又陌生。熟悉在于它频繁出现在各类技术论坛和新闻报道中&#xff1b;而陌生则源于对这样一个强大工具背后运作机制的好奇。简单来说&#xff0c;PyTorch是一个开源库&#xff…...

欧几里得算法求最大公约数、最小公倍数

这段代码就是不断用较小数和余数来更新 a 和 b&#xff0c;直到余数变为 0&#xff0c;最后返回的 a 就是最大公约数。 #include <iostream> using namespace std;//最大公约数 int gcd(int a, int b){//这个循环表示只要 b 不是 0&#xff0c;就继续进行。//因为当 b …...

QEMU源码全解析 —— 块设备虚拟化(14)

接前一篇文章:QEMU源码全解析 —— 块设备虚拟化(13) 本文内容参考: 《趣谈Linux操作系统》 —— 刘超,极客时间 《QEMU/KVM源码解析与应用》 —— 李强,机械工业出版社 特此致谢! 上一回开始解析VirtioDeviceClass的realize函数virtio_blk_device_realize(),再来回…...

深入理解AOP:面向切面编程的核心概念与实战应用

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…...

3500 阶乘求和

3500 阶乘求和 ⭐️难度&#xff1a;中等 &#x1f31f;考点&#xff1a;2023、思维、省赛 &#x1f4d6; &#x1f4da; import java.util.Scanner;public class Main {public static void main(String[] args) {long sum 0;for(int i1;i<50;i) { // 之后取模都相等su…...

正则入门到精通

​ 一、正则表达式入门​ 正则表达式本质上是一串字符序列&#xff0c;用于定义一个文本模式。通过这个模式&#xff0c;我们可以指定要匹配的文本特征。例如&#xff0c;如果你想匹配一个以 “abc” 开头的字符串&#xff0c;正则表达式可以写作 “^abc”&#xff0c;其中 …...

Mysql 行级锁在什么样的情况下会升级为表级锁?

在 MySQL 中&#xff0c;行级锁通常由 InnoDB 存储引擎使用&#xff0c;因为它支持高并发和细粒度的锁定。通常情况下&#xff0c;InnoDB 在执行诸如 UPDATE、DELETE 或 SELECT FOR UPDATE 等操作时&#xff0c;会为被修改的数据行加锁&#xff08;行级锁&#xff09;。但是&am…...

docker部署kkfileview

拉取 KKFileView 镜像 docker pull keking/kkfileview或指定版本 docker pull keking/kkfileview:4.1.0运行 KKFileView 容器 docker run -d \--name kkfileview \-p 8012:8012 \--restart always \keking/kkfileview-d&#xff1a;后台运行 -p 8012:8012&#xff1a;将容器…...

优选算法的妙思之流:分治——快排专题

专栏&#xff1a;算法的魔法世界 个人主页&#xff1a;手握风云 目录 一、快速排序 二、例题讲解 2.1. 颜色分类 2.2. 排序数组 2.3. 数组中的第K个最大元素 2.4. 库存管理 III 一、快速排序 分治&#xff0c;简单理解为“分而治之”&#xff0c;将一个大问题划分为若干个…...

蓝桥杯嵌入式第15届真题-个人理解+解析

个人吐槽 #因为最近蓝桥杯快要开始了&#xff0c;我舍不得米白费了&#xff0c;所以就认真刷刷模拟题&#xff0c;但是我感觉真题会更好&#xff0c;所以就看了一下上届的真题。不过它是真的长&#xff0c;我看着就头晕&#xff0c;但是还是把几个模块认真分析了一下就还是很容…...

数据库系统概述 | 第二章课后习题答案

本文为数据库系统概论&#xff08;第五版&#xff09;【高等教育出版社】部分课后答案 如有错误&#xff0c;望指正 &#x1f47b; 习题 &#x1f47b; 答案...

深入解析CPU主要参数:选购与性能评估指南

引言 中央处理器&#xff08;CPU&#xff09;作为计算机的"大脑"&#xff0c;其性能直接决定了整机的运算能力和响应速度。无论是组装新电脑、升级旧系统还是选购笔记本电脑&#xff0c;理解CPU的关键参数都至关重要。本文将从技术角度全面解析CPU的各项主要参数&am…...

Lettuce与Springboot集成使用

一、Lettuce核心优势与Spring Boot集成背景 Lettuce特性 基于Netty的非阻塞I/O模型&#xff0c;支持同步/异步/响应式编程线程安全&#xff1a;共享单连接实现多线程并发操作&#xff0c;性能衰减低原生支持Redis集群、哨兵、主从架构&#xff0c;自动重连机制保障高可用Spring…...

【Kafka基础】ZooKeeper在Kafka中的核心作用:分布式系统中枢神经系统

在分布式系统的世界里&#xff0c;协调和管理多个节点间的状态是一项复杂而关键的任务。Apache Kafka作为一款高性能的分布式消息系统&#xff0c;其设计哲学是"专为单一目的而优化"——即高效处理消息流。为了实现这一目标&#xff0c;Kafka选择将集群协调管理的重任…...

专业的情商测评工具:EQ-i在线测评系统

专业的情商测评工具&#xff1a;EQ-i在线测评系统 基于巴昂情商量表的专业情商评估工具&#xff0c;帮助您更好地了解自己的情商水平。 什么是EQ-i&#xff1f; EQ-i&#xff08;Emotional Quotient Inventory&#xff09;是由Reuven Bar-On开发的情商量表&#xff0c;是国际上…...

Ubuntu安装Podman教程

1、先修改apt源为阿里源加速 备份原文件&#xff1a; sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup 修改源配置&#xff1a; vim sources.list删除里面全部内容后&#xff0c;粘贴阿里源&#xff1a; deb http://mirrors.aliyun.com/ubuntu/ focal main re…...

7.训练篇5-毕设

使用23w张数据集-vit-打算30轮-内存崩了-改为batch_size 8 我准备用23w张数据集&#xff0c;太大了&#xff0c;这个用不了&#xff0c;所以 是否保留 .stack() 加载所有图片&#xff1f;情况建议✅ 小数据集&#xff08;<2w张&#xff0c;图像小&#xff09;想加快速度可…...

java数据结构-哈希表

什么是哈希表 最理想的搜索方法 , 即就是在查找某元素时 , 不进行任何比较的操作 , 一次直接查找到需要搜索的元素 , 可以达到这种要求的方法就是哈希表. 哈希表就是通过构造一种存储结构 , 通过某种函数使元素存储的位置与其关键码位形成一 一映射的关系 , 这样在查找元素的时…...

Linux错误(6)X64向量指令访问地址未对齐引起SIGSEGV

Linux错误(6)X64向量指令访问地址未对齐引起SIGSEGV Author: Once Day Date: 2025年4月4日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可参考专栏: Linux实…...

SpringBoot配置文件多环境开发

目录 一、设置临时属性的几种方法 1.启动jar包时&#xff0c;设置临时属性 ​2.idea配置临时属性 3.启动类中创建数组指定临时属性 二、多环境开发 1.包含模式 2.分组模式 三、配置文件的优先级 1.bootstrap 文件优先&#xff1a; 2.特定配置文件优先 3.文件夹位置优…...

解锁健康密码:拥抱活力养生生活

在追求高品质生活的今天&#xff0c;健康养生成为了人们关注的焦点。它不仅关乎当下的生活质量&#xff0c;更是对未来的有力投资。 合理的饮食是健康养生的基石。一日三餐&#xff0c;应遵循 “五谷为养&#xff0c;五果为助&#xff0c;五畜为益&#xff0c;五菜为充” 的原则…...

手动将ModelScope的模型下载到本地

一、ModelScope 介绍 ModelScope 官网地址&#xff1a; https://www.modelscope.cn/home 模型库地址&#xff1a;https://www.modelscope.cn/models 文档中心&#xff1a;https://www.modelscope.cn/docs/home ModelScope旨在打造下一代开源的模型即服务共享平台&#xff0c;为…...