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

【MySQL】索引(重要)

目录

一、索引本质:

索引的核心作用

索引的优缺点

二、预备知识:

硬件理解:

软件理解:

MySQL与磁盘交互基本单位:

三、索引的理解:

理解page:

单个page:

多个page:

聚簇索引 VS 非聚簇索引

回表查询:

四、索引实操:

创建主键索引:

创建唯一键索引:

创建普通索引:

创建复合索引:

删除索引:


一、索引本质:

索引是用来进行高效查询的,其本质上是数据库中的一种高效数据结构,其主要是B+树,它能够加快数据的查询,排序的类似操作,类似于书本的目录,是通过减少所需要扫描的数据来提高性能的,就像二分查找那样,在二分查找中,能够查找一个数据就能够去掉一半的无效数据,索引也是类似于如此,

但是索引也并不是没有代价的,查询速度是提高了,但是插入,更新,删除的效率会有所降低,这些写操作,增加了大量的IO,在调整的时候会对其底层的所实现的数据结构如B+树进行维护

索引的核心作用

  • 加速查询:通过跳过全表扫描,快速定位目标数据。
  • 排序优化:索引本身有序,可加速ORDER BY,GROUP BY等操作
  • 唯一性约束:唯一索引(如主键)确保列值的唯一性。

索引的优缺点

优点

  • 显著提升查询速度(尤其是大数据量)
  • 加速表连接(如外键索引)
  • 避免排序开销(索引已有序)

缺点

  • 占用额外存储空间
  • 降低写操作(INSERT/UPDATE/DELETE)速度,需维护索引结构
  • 索引设计不当可能导致未命中(如索引失效)

二、预备知识:

硬件理解:

MySQL给用户提供存储服务,是存储在磁盘上的,数据是存储在磁盘上的那一个个扇区中的, 关于磁盘的更详细了解可以看看我之前写的:

【Linux】基础IO------理解文件系统(inode)-CSDN博客https://blog.csdn.net/2303_80828380/article/details/144544294?spm=1001.2014.3001.5501理解:

在系统软件上,并不是按照扇区(512字节或者4096字节/4kb)进行交互的,因为这样的话就会和硬件强相关了,也就是如果将硬件换了就会导致系统软件也必须跟着变换,这样其耦合度就会太高,不便于彼此之间的硬件或者系统各自进行升级或者更新,所以必须得将解耦工作做得更好

并且,单词IO 512字节的单位太小了,IO单位小意味着读取相同的内容的会多次进行IO,这样导致每次IO都会将磁盘进行转动,磁头进行选扇区,这些机械操作就肯定会带来效率的降低

所以系统进行读取磁盘是以块为单位进行存储的,基本单位是4kb(4096字节),4kb是为了能够让磁盘数据和内存数据进行更好的IO交互

那么4kb会不会多做了很多工作呢?实际上单纯这样理解是不够充分的,因为OS一次加载4kb也有其自己的考量 -----局部性原理,实际上本身就是预加载,预加载数据也就是一次加载4kb,有可能只使用几条指令,但是后面的部分,可能也有些指令,大概率还会访问的,所以因为局部性原理,一次预加载4kb空间是能够在一定意义上在宏观的概率提高整体的效率的

软件理解:

MySQL与磁盘交互基本单位:

MySQL是属于在OS上的应用层中的,也就是说MySQL之下是OS,MySQL是通过OS和硬件打交道的,不能够直接和硬件打交道

在MySQL中,MySQL和磁盘打交道的单位是page---其大小是16kb,

如上,这是以字节为单位的,将value=16384进行 /1024 就是16kb

这看起来是MySQL直接和磁盘打交道的,但是实际上并不是如此,实际上是MySQL先要经过OS,然后在让OS和磁盘打交道,这里MySQL一次性操作就是16kb,但是到了OS就是4次4kb,但是我们不需要关心这4次4kb是怎么进行交互的

MySQL中的page和OS中的page是1:4的关系

buffer pool:

首先要知道,MySQL中的数据文件都是以page为单位保存在磁盘中的,当对MySQL中的表进行各种CRUD的时候,首先要通过计算找到对应的位置,既然要进行计算,就需要CPU进行参与,既然要CPU进行参与,根据冯诺依曼体系结构,我们知道CPU和内存打交道的,所以就需要将数据从磁盘中移动到内存中,在内存上完成数据的CURD后,在以特定的刷新策略从内存刷新到磁盘中,此时就是内存到磁盘之间的数据交互了,也就是IO,其基本单位是page在这里是以4kb为大小的

但是这样的话效率是比较低的,为了提高效率,当MySQL服务器在其内存中运行的时候,在其服务器内部申请了buffer pool的大内存空间,来进行缓存,这样MySQL就能够直接和buffer pool进行数据交互,不需要等待OS和磁盘进行IO交互

三个共识:

1、MySQL以16kbpage为单位进行MySQL级别的IO

2、MySQL有自己的buffer pool,MySQL在进行IO的时候,它会把读到的数据写到buffer里,刷新的时候,也是把buffer里的数据刷新到自己的OS内部的缓冲区中,最后在刷新到磁盘的

3、一般在进行IO的时候要减少OS和磁盘的IO次数,所以一次IO次数越大,那么它的IO次数越少,效率就会越高

三、索引的理解:

我们首先看一个现象,这里创建一个学生表,然后把id设置为主键,

接着在进行插入的时候故意乱序插入:

然后在进行查找:

这里发现尽管我们是乱序进行插入的,但是在查找的时候却是有序的,这显然只有是MySQL进行处理了的,但是MySQL为什么要这样进行处理呢?

要想知道,我们得先理解page

理解page:

如何理解MySQL中page的概念:

page只是一个个内存块么?

在MySQL内部一定会存在大量的page,那么就需要将这些大量的page通过B+树进行管理-----先描述,再组织,所以这些page内也会存在指向下一个page的指针,所以不能将page认为仅仅是一个内存块,page内部也必须写入对应的管理信息:

struct page
{struct page* next;struct page* next;char buffer[NUM];
}

那么为什么IO交互的单位是page呢?

这里为什么是通过以page为单位进行交互呢?为什么不用多少就申请多少呢?

因为存在局部性原理:CPU访问存储器时(包括指令和数据),所访问的地址倾向于聚集在较小的连续区域内,而非均匀分布

比如我们要查找学号为3的学生,就需要从学号为1的学生依次进行查找,这里就需要进行3次IO,那么如果是学号为5呢?50呢?500呢?这样就会进行很多次IO,那么如果将学号为5的学生都保存在同一个page中,在MySQL中一个page交互为16kb是很大的空间,能够保存很多记录,这时如果在查找学号为2的学生后,如果想查找学号为5或者在同一个page中的学生的学号的时候,就不需要进行IO了,直接读取即可,这样就能够大大减少IO的次数

但是怎么保证下次找到数据一定在同一个page呢?这是不能够严格保证的,但是因为存在局部性原理,会有很大的概率

这样因为IO次数的减少就能够提高IO的效率,因为往往IO效率的低下并不是IO单次的数据量,而是IO的次数

单个page:

通过上述分析,我们知道要管理好表的数据文件,我们目前可以理解这一个个文件是由一个或多个page构成的

所以其可以理解为:

在page里面,当进行数据的查找的时候,如果进行链式查找的话效率会很低下,所以page里面并不全是数据,还牺牲了一小部分的空间来存放目录,

这样当进行查找的时候就不从数据的最开始直接进行链式查找了,而是通过目录进行查找,这样的话能够大大增大效率

那么回到我们之前的问题,为什么乱序插入,MySQL会通过我们的主键进行排序呢?

这是因为要引入目录,那么就需要数据的有序性,这样方便通过目录进行查找

多个page:

当创建一个表的时候,这个表中所需的数据可能会很大,所以就需要多个page,那么我们解决了单个page的查找效率问题,但是多个page的查找效率问题呢

如果有多个page,并且在查找数据的时候,数据在最后一个page中,这个时候进行线性遍历的话需要遍历所有page,这个遍历操作是在内存中进行的,那么就需要将所有page从磁盘中IO交互到内存中,会增加IO次数,进而影响效率

如果仅仅给单个page加上目录有点杯茶水车薪了,所以就需要给所有page加上目录,进而大大提高效率

那么就需要创建目录page,这个page里面只存其管理的page的最小主键所对应的数据,如下就是示意图,最下面的就是里面有数据的page,然后上一层就是只存放目录的page,

当数据进一步增多,那么就需要再加上一层page了,这样就能够很快速的读取数据了

这就是一颗B+树,这是多叉树的结构,是innodb下的索引结构,当进行查找的时候就会首先在最上面的page中查找到一个范围,这样就会淘汰掉很多数据,像上述那样,仅仅只有三层但是其能够存储2000多万条数据了

这样当进行IO查找的时候,就仅仅只需要进行磁盘和内存之间交互3次即可

关于这可B+树:

1、叶子结点保存了数据,非叶子节点没有保存数据,只保存了目录,这是为了让非叶子节点存储更多的目录这样来管理更多的叶子page,对与这棵树其外形就是一棵矮胖型的树,这样就能够使其途径的节点数量少,只需通过更少的page,更少的IO来找到数据,这样大大提高了效率

2、叶子节点是全部用链表连接起来了,这是B+树的特点,并且这样能够便于进行范围查找

3、我们进行建表插入数据的时,就是在这棵B+树下进行CURD的,在进行目录的引入的时候,在之前的学习中我们了解需要让这些数据是有序的,就需要主键,但是如果我的表没有设置主键呢?那么会不会就是乱序的,这是不会的,尽管我们没有主动设置主键,但是MySQL会设置默认主键

4、MySQL底层会将我们的数据组合成这个B+树的,然后将其保存在buffer pool中,MySQL中会有大量的表被处理,所以在buffer pool中就会有多个索引结构,也就是存在多个B+树

5、为什么使用B+树,不使用B树或者其他数据结构呢?

链表:不行,这是链式存储,查找的效率低下

二叉树,AVL树,红黑树,这都是二叉式的结构,是瘦高型的树,其效率不如矮胖型的B+树,并且二叉树在极端情况下会退化为链式结构

B树也不行,B树不只是在叶子结点中进行数据的存储的,还有在非叶子节点中也会存储数据的,这样会导致范围查找不如B+树,哈希表这个数据结构也是因为范围查找不行而不被使用的

聚簇索引 VS 非聚簇索引

像上述所讲的那种将数据和索引都放在叶子结点中这种存储方式是我们innodb的存储形式

与这种不同的是Myisam引擎的底层,并未将索引和数据放在一起,其叶子节点存储的只是数据的地址,然后通过这个地址进行数据的查找的

如下:

  • 将B+树和数据本身分离的方案称为非聚簇索引
  • 将数据和B+树放到一起的称为聚簇索引

接下来看例子:

如上,通过innodb引擎和Myisam引擎创建两张表

我们是通过MySQL客户端进行创建的表,接着MySQL服务端就会将我们创建的表在磁盘中创建对应的文件.

其中test1也就是innodb只有一个文件ibd,索引和表是合起来的

其中test2这两个文件里面myd就是数据,myi就是索引结构

所以innodb为聚簇索引,Myisam为非聚簇索引

回表查询:

MySQL除了会建立主键索引外还会建立不止一种索引,其他的索引叫做普通(辅助)索引

对于Myisam,建立辅助索引和主键索引没有区别,唯一就是主键索引不能重复,非主键索引不能重复

对于Innodb,辅助索引就很有用了,辅助索引不在保存一个完整的数据了,而是只保存该表中的某一个字段和主键,比如保存的是主键和name列,未来查询某一个name信息,然后筛选条件是age,那么就会找到以这个age为key的辅助索引,然后就能够找到对应的主键了,然后就拿着这个主键,在主键索引中找到对应的name信息了

当根据普通索引查询数据时,会先查找普通索引对应的B+树找到目标记录的主键值,然后再查找主键索引对应的B+树找到目标记录,这个过程就叫做回表查询

索引的本质,就是一种数据结构

四、索引实操:

创建主键索引:

创建主键索引和创建主键的方式是一样的,在我们以前创建主键的时候不仅仅是创建了主键,并且还创建了主键索引

用如下SQL语句来进行查看

show index from 表名

或者也可以使用如下的两种方法,其实就是创建主键的方法:

create table 表名(id int, name varchar(20), primary key(id));create table 表名(id int, name varchar(20));
// 创建表以后再添加主键
alter table 表名 add primary key(id);

主键索引的特点如下:

  • 一个表中,最多只能有一个主键索引,一个主键可以由多个列同时承担。
  • 主键索引的查询效率高。
  • 创建主键索引的列,其列值不能为NULL,且不能重复。
  • 主键索引的列一般是数字类型。

创建唯一键索引:

alter table 表名 add unique(列名);

其实也就是创建唯一键的三种方法

create table 表名(id int primary key, name varchar(30) unique);create table 表名(id int primary key, name varchar(30), unique(name));create table 表名(id int primary key, name varchar(30));
alter table 表名add unique(name);

唯一索引的特点如下:

  • 一个表中,可以有多个唯一索引,一个唯一键可以由多个列同时承担。
  • 唯一索引的查询效率高。
  • 创建唯一索引的列,其列值可以为NULL,但是不能重复。
  • 如果给唯一索引设置NOT NULL属性,则等价于主键索引。

创建普通索引:

create table 表名(id int primary key,name varchar(20),email varchar(30),index(name));create table 表名(id int primary key, name varchar(20), email varchar(30));
alter table 表名 add index(name);create table 表名(id int primary key, name varchar(20), email varchar(30));
create index 自己取名字 on 表名(name)
create table test(id int primary key,name varchar(20),ema,email varchar(30),index(name));

创建复合索引:

首先将name的普通索引删除

alter table test1 add index(name, email);

如上,以name和email作为索引进行创建

接着会看到三个索引,这实际上是两个,只是name和email公用同一个B+树

删除索引:

删除主键索引:

alter table 表名 drop primary key;

删除非主键索引:

alter table 表名 drop index 索引名;drop index 索引名 on 表名;

一个表只有一个主键索引,所以在删除主键索引的时候不用指明索引名,而一个表中可能有多个非主键索引,所以在删除非主键索引时需要指明索引名

创建索引原则:

  • 比较频繁作为查询条件的字段应该创建索引。
  • 唯一性太差不适合做索引。
  • 更新太频繁不适合做索引。
  • 永远不会出现在where子句中的。

相关文章:

【MySQL】索引(重要)

目录 一、索引本质: 索引的核心作用 索引的优缺点 二、预备知识: 硬件理解: 软件理解: MySQL与磁盘交互基本单位: 三、索引的理解: 理解page: 单个page: 多个page&#x…...

C++多态(上)

目录 一、多态的概念 二、多态的定义及实现 1. 多态的构成条件 2. 虚函数 3. 虚函数的重写 4. C11 override 和 final 4.1 final 关键字 4.2 override 关键字 5. 重载、覆盖(重写)、隐藏(重定义)的对比 三、抽象类 1. 概…...

【AI提示词】 复利效应教育专家

提示说明 一位拥有金融学和教育学背景的知识型内容创作者,擅长用简单易懂的语言向读者解释复杂概念 提示词 # Role: 复利效应教育专家## Profile - language: 中文 - description: 一位拥有金融学和教育学背景的知识型内容创作者,擅长用简单易懂的语言…...

嵌入式系统基础知识

目录 一、冯诺依曼结构与哈佛结构 (一)冯诺依曼结构 (二)哈佛架构 二、ARM存储模式 (一)大端模式 (二)小端模式 (三)混合模式 三、CISC 与 RISC &am…...

如何克服情绪拖延症?

引言 你是否也曾有过这样的经历? 明明手头有重要的工作,却总是忍不住刷手机、看视频,直到最后一刻才匆忙赶工? 你是否在心里暗暗发誓“明天一定好好干”,但第二天依旧重复着同样的拖延? 其实&#xff0…...

【操作系统】哲学家进餐问题

问题描述 哲学家进餐问题是并发编程中的一个经典问题,描述了五位哲学家围坐在一张圆桌旁,他们的生活由思考和进餐组成。在圆桌上有五个盘子,每位哲学家面前一个盘子,盘子之间有一支叉子。哲学家进餐需要同时使用左右两支叉子。问题…...

Kotlin协程解析

目录 一、协程的使用 二、协程的执行原理 2.1、挂起函数的反编译代码及执行分析 2.2、协程执行流程分析 2.2.1、createCoroutineUnintercepted方法 2.2.2、intercepted方法 2.2.3、resumeCancellableWith方法 2.3、Dispatcher----分发器的实现 2.3.1、Main 分发器的实…...

Nginx核心功能 02

目录 Nginx代理技术核心概念 (一)正向代理(Forward Proxy) 1. 基本定义 2. 技术原理 3. 应用场景 (二)反向代理(Reverse Proxy) 1. 基本定义 2. 技术原理 3. 应用场景 一、…...

聊聊对Mysql的理解

目录 1、Sql介绍 1.1、SQL的分类 1.2、数据库的三大范式 1.3、数据表的约束 1.4、约束的添加与删除 2、核心特性 3、主要组件 4、数据结构原理 5、索引失效 6、常用问题 7、优势与局限 前言 MySQL是一个开源的关系型数据库管理系统(RDBMS),由瑞典MySQL A…...

「Mac畅玩AIGC与多模态17」开发篇13 - 条件判断与分支跳转工作流示例

一、概述 本篇在多节点串联的基础上,进一步引入条件判断与分支跳转机制,实现根据用户输入内容动态走不同执行路径。开发人员将学习如何配置判断节点、定义分支规则,以及如何在工作流中引导执行方向,完成基础的逻辑控制。 二、环境准备 macOS 系统Dify 平台已部署并可访问…...

pycharm terminal 窗口打不开了

参考添加链接描述powershell.exe改为cmd.exe发现有一个小正方形,最大化可以看见了。...

JAVA:使用 MapStruct 实现高效对象映射的技术指南

1、简述 在 Java 开发中,对象之间的转换是一个常见的需求,尤其是在 DTO(数据传输对象)和实体类之间的转换过程中。手动编写转换代码既耗时又容易出错,而 MapStruct 是一个优秀的对象映射框架,可以通过注解生成高效的对象转换代码,从而大大提升开发效率。 本文将介绍 M…...

Linux线程深度解析:从基础到实践

Linux线程深度解析:从基础到实践 一、线程基础概念 1. 进程与线程定义 进程:一个正在运行的程序,是操作系统资源分配的最小单位(拥有独立的地址空间、文件描述符等资源),状态包括就绪、运行、阻塞。线程…...

【ROS2】launch启动文件如何集成到ROS2(Python版本)

一、简单实操 1.创建/打开一个功能包 mkdir -p my_ws/src cd my_ws/src ros2 pkg create my_pkg_example --build-type ament_python 2.创建Launch文件的存放目录 将所有启动文件都存储在launch包内的目录中。 目录结构如下所示: src/my_pkg_example/launch/…...

用 PyTorch 轻松实现 MNIST 手写数字识别

用 PyTorch 轻松实现 MNIST 手写数字识别 引言 在深度学习领域,MNIST 数据集就像是 “Hello World” 级别的经典入门项目。它包含大量手写数字图像及对应标签,非常适合新手学习如何搭建和训练神经网络模型。本文将基于 PyTorch 框架,详细拆…...

碰撞检测学习笔记

目录 SUMO 模拟碰撞 LimSim pygame模拟碰撞检测 SUMO 模拟碰撞 LimSim 多模态大语言模型(M)LLM的出现为人工智能开辟了新的途径,特别是提供增强的理解和推理能力,为自动驾驶开辟了新途径。本文介绍LimSim,LimSim的…...

Sway初体验

Sway(缩写自 SirCmpwn’s Wayland compositor[1])是一款专为 Wayland 设计的合成器,旨在与 i3 完全兼容。根据官网所述: Sway 是 Wayland 的合成器,也是 x11 的 i3 窗口管理器的替代品。它可以根据您现有的 i3 配置工作…...

《工业社会的诞生》章节

工业革命的技术前奏 早期工业技术双引擎: 【火药武器】:重塑战争形态与经济地理 新式青铜炮助力殖民扩张,开辟全球贸易网络 高桅帆船(西班牙大帆船)实现洲际航行 战争规模化倒逼中央集权,催生国家-商人…...

消息队列MQ

参考资料:https://cloud.tencent.com/developer/article/2335397 https://www.cnblogs.com/hahaha111122222/p/18457859 消息队列是大型分布式系统不可缺少的中间件,也是高并发系统的基石中间件 消息队列 消息队列 Message Queue 消息队列是利用高效可…...

LangChain4J-XiaozhiAI 项目分析报告

LangChain4J-XiaozhiAI 项目分析报告 GitHub 链接 1. 项目概述 本项目名为 “硅谷小智(医疗版)”,是一个基于 Java 技术栈和 LangChain4J 框架构建的 AI 聊天助手应用。其核心目标是利用大型语言模型(LLM)的能力&am…...

学习spring boot-拦截器Interceptor,过滤器Filter

目录 拦截器Interceptor 过滤器Filter 关于过滤器的前置知识可以参考: 过滤器在springboot项目的应用 一,使用WebfilterServletComponentScan 注解 1 创建过滤器类实现Filter接口 2 在启动类中添加 ServletComponentScan 注解 二,创建…...

【程序+论文】大规模新能源并网下的火电机组深度调峰经济调度

目录 1 主要内容 讲解重点 2 讲解视频及代码 1 主要内容 该视频为《大规模新能源并网下的火电机组深度调峰经济调度》代码讲解内容,该程序有完全对照的论文,以改进IEEE30节点作为研究对象,系统包括5个火电机组和2个新能源机组,…...

【win11 】win11 键盘测试

我的键盘是支持mac和win的,fn tab 就能切换,有可能是用错了模式,导致 我alt a 就会弹出 win11的 wifi 等菜单控制 键盘测试网站 https://keyboard.bmcx.com/ 识别到我按下的是alt...

再识动静态库

动静态库 1 手动制作静态库2 手动调用静态库方式一:(安装到系统)方式二:(和源文件一起)方式三:(使用带路径的库) 3 动态库制作与使用方式一:拷贝到系统方式二…...

前端 uni-app 初步使用指南

在数字化浪潮下,实现应用多端适配成为开发者的刚需。uni-app 凭借 “一次编写,多端运行” 的特性,极大提升了开发效率,成为前端开发的热门选择。如果你是首次接触 uni-app,这篇文章将带你开启 uni-app 的使用之旅&…...

尼卡音乐 1.1.1 | 免费畅听全网音乐,支持无损下载,无广告无需注册登录

尼卡音乐是一款可以免费畅听全网音乐的应用程序,支持免费下载无损高品质音源,并且没有任何广告,无需注册登录。用户可以轻松搜索全网无损音质音源,并可将其他音乐APP的歌单导入,让音乐陪你开心一整天。该应用彻底拒绝臃…...

33.降速提高EMC能力

降速提高EMC能力 1. 电磁兼容问题的错误累积效应2. 降速减少累积效应的机理分析 1. 电磁兼容问题的错误累积效应 2. 降速减少累积效应的机理分析 降速之后,信号的波形更完整,容错空间更大;另外边沿变缓,对外干扰也会减小。...

【赵渝强老师】TiDB的MVCC机制

TiDB是一款开源的国产分布式关系型数据库。TiKV是TiDB的行存引擎,它支持多版本并发控制(Multi-Version Concurrency Control,MVCC)。假设有这样一种场景:某客户端A在写一个Key,另一个客户端B同时在对这个Key进行读操作。如果没有数据的多版本…...

数电填空题整理(适用期末考试)

在下列门电路中,OC门能实现“线与”逻辑功能; 三态门能用于总线结构的数 据传输;传输门 能实现模拟信号的双向传输。 并联比较型A/D转换器的转换速度最快, 双积分型A/D转换器的稳定性和抗干扰能力最好 TTL与非门多余的输入端应该…...

node核心学习

目录 1-1node概述 1-2全局对象 1-3Node的模块化细节 1-4Node中的ES模块化 1-5基本内置模块 OS模块: path模块: url模块: util模块: 1-6文件IO I/O:input output fs模块的方法 代码示例: 练习…...

基于 PyQt 的YOLO目标检测可视化界面+ nuitka 打包

在人工智能和计算机视觉领域,YOLO(You Only Look Once)是一种广泛使用的实时目标检测算法。为了直观地展示YOLO算法的检测效果,我们使用Pyqt框架进行检测结果的可视化,同时为了使其能够脱离Python环境,我们…...

234树和红黑树

首先,把目光聚集在234树中 以下是234的三种节点(可以有更多这里使用以下的三个): 右侧是节点转换成红黑树节点的样子。 接下来会用以下序列进行1234树的搭建和红黑树的搭建: 首先是234树 2-3-4树(234树&…...

GenCLS++:通过联合优化SFT和RL,提升生成式大模型的分类效果

摘要:作为机器学习中的一个基础任务,文本分类在许多领域都发挥着至关重要的作用。随着大型语言模型(LLMs)的快速扩展,特别是通过强化学习(RL)的推动,对于更强大的分类器的需求也在不…...

maven坐标导入jar包时剔除不需要的内容

maven坐标导入jar包时剔除不需要的内容 问题描述解决方案 问题描述 maven坐标导入jar包时剔除不需要的内容 解决方案 Spring Boot 默认使用 Logback&#xff0c;需在 pom.xml 中排除其依赖&#xff1a; <dependency><groupId>org.springframework.boot</gro…...

Oracle OCP认证考试考点详解083系列06

题记&#xff1a; 本系列主要讲解Oracle OCP认证考试考点&#xff08;题目&#xff09;&#xff0c;适用于19C/21C,跟着学OCP考试必过。 26. 第26题&#xff1a; 题目 解析及答案&#xff1a; 关于块介质恢复&#xff0c;以下哪三项是正确的&#xff1f; A) 需恢复一个或多个…...

llfc项目分布式服务笔记

一、系统整体架构流程图(简明版) 复制代码 +---------------+ +------------------+ +----------------+ | 客户端 (Client) |--------->| GateServer |----------| StatusServer |<--+ +---------------+ +--------------…...

“链式前向星”等三种存图方式分别输出“无向无权图”的“DFS序列”

【DFS序列】 DFS序列&#xff08;深度优先搜索序列&#xff09;&#xff0c;是树或图结构在深度优先遍历过程中生成的节点访问顺序记录。 下面三段代码&#xff0c;分别采用链式前向星、邻接表、邻接矩阵存图&#xff0c;输出图的“DFS序列”。 【DFS&#xff1a;链式前向星】…...

Lesson 16 A polite request

Lesson 16 A polite request 词汇 park n. 公园&#xff0c;停车场&#xff0c;庄园 v. 停车&#xff0c;泊车 例句&#xff1a;让我来停车。    Let me park. 相关&#xff1a;spot n. 车位 区别&#xff1a;garden n. 花园 [小&#xff0c;私家的] 例句&#xff1a;我们…...

【IP101】边缘检测技术全解析:从Sobel到Canny的进阶之路

&#x1f31f; 边缘检测的艺术 &#x1f3a8; 在图像处理的世界里&#xff0c;边缘检测就像是给图像画眉毛 —— 没有它&#xff0c;你的图像就像一只没有轮廓的熊猫&#x1f43c;。让我们一起来探索这个神奇的"美妆"技术&#xff01; &#x1f4da; 目录 基础概念 …...

Nx 智能分发机制(Nx Agents + Nx Cloud)

Nx 智能分发机制&#xff08;Nx Agents  Nx Cloud&#xff09; 阶段关键做的事作用1. 收集信息- Project Graph&#xff1a;解析整个 workspace 依赖关系&#xff08;谁依赖谁&#xff09;- 历史统计&#xff1a;每次 CI 结束后将每个任务的实际用时与缓存命中情况上传…...

《“昊龙一号”:开启中国航天货运新时代》

中国航天新力量:昊龙一号登场 在 2024 年 10 月 29 日上午,神舟十九号载人飞行任务新闻发布会如一颗重磅炸弹,在航天领域激起千层浪。发布会上,一系列关乎中国载人航天工程未来走向的重要信息被披露,其中,“昊龙一号” 货运航天飞机入围空间站低成本货物运输系统总体方案…...

C++ 多态:原理、实现与应用

目录 引言 一、多态的概念 二、多态的定义及实现 &#xff08;一&#xff09;构成条件 &#xff08;二&#xff09;虚函数的深入理解 &#xff08;三&#xff09;虚函数的重写&#xff08;覆盖&#xff09; 三、抽象类 &#xff08;一&#xff09;概念 &#xff08;二&…...

多模态大语言模型arxiv论文略读(五十八)

How Does the Textual Information Affect the Retrieval of Multimodal In-Context Learning? ➡️ 论文标题&#xff1a;How Does the Textual Information Affect the Retrieval of Multimodal In-Context Learning? ➡️ 论文作者&#xff1a;Yang Luo, Zangwei Zheng, …...

TS 枚举类型

枚举 参数为枚举成员中的一个 数字枚举 字符串枚举 枚举特点 、 缺点&#xff1a;转为JS代码时会编译成JS代码&#xff0c;增大开销...

Python容器与循环:数据处理的双剑合璧

Python作为一门简洁强大的编程语言&#xff0c;其容器类型和循环结构的完美结合为数据处理提供了极大的便利。本文将带领初学者深入理解Python中的四大容器&#xff08;列表、元组、字典、集合&#xff09;以及它们与循环结构的配合使用&#xff0c;助你掌握数据处理的核心技能…...

ST-LINKV2仿真器下载

ST-LINKV2仿真器 — 正点原子资料下载中心 1.0.0 文档...

RAGFlow 接入企业微信应用实现原理剖析与最佳实践

背景 近期有医美行业客户咨询我们智能客服产品&#xff0c;期望将自己企业的产品、服务以及报价信息以企微应用的方式给到客户进行体验互动&#xff0c;提升企业运营效率。关于企业微信对接&#xff0c;我们分享下最佳实践&#xff0c;抛砖引玉。效果图如下&#xff1a; 这里也…...

大模型实践:图文解锁Ollama在个人笔记本上部署llm

使用在线模型服务时&#xff0c;我们常常需要支付API调用费用&#xff0c;这对于个人开发者或小型组织来说可能是一笔不小的开支。那么&#xff0c;有没有方法可以在本地免费使用这些强大的模型呢&#xff1f;答案是肯定的——Ollama就是这样一个工具。 当然如果是比较大的组织…...

如何提高情商?(优化版)

引言 提高情商&#xff08;EQ&#xff09;是一个需要长期练习和自我反思的过程&#xff0c;核心在于理解自己、管理情绪、共情他人并有效沟通。以下是一些具体且可操作的方法&#xff0c;结合理论和实际场景&#xff0c;帮助你逐步提升&#xff1a; 一、核心方法&#xff1a;…...

学习黑客Linux权限

在 Linux 的王国里&#xff0c;“权限”就是装备与技能加成&#xff1a;决定谁能拔剑&#xff08;读 r&#xff09;、挥剑&#xff08;写 w&#xff09;、进入房间&#xff08;执行 x&#xff09;。本文用“闯关升级”视角&#xff0c;把常见 rwx、八进制数字、SUID/SGID/Stick…...