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

【每日八股】复习 MySQL Day2:索引

文章目录

  • 昨日内容复习
    • MySQL 事务的四大特性?
    • 并发事务会产生哪些问题?
    • MySQL 事务的隔离级别?
    • MVCC 实现原理?
    • 幻读如何解决?
    • 读已提交隔离级别如何实现?
  • 复习 MySQL Day2:索引
    • MySQL 使用 B+ 树作为索引的优势是什么?
    • 索引有哪几种?
    • 什么是最左匹配原则?
    • 索引区分度?
    • 联合索引如何排序?
    • 使用索引有哪些缺陷?
    • 什么时候需要建立索引,什么时候不需要建立索引?
    • 使用索引的注意事项
    • WHERE 语句索引使用的注意事项
    • 索引什么时候失效?

昨日内容复习

MySQL 事务的四大特性?

  • 原子性:事务当中的操作要么全部成功,要么全部失败;
  • 一致性:数据库总是从一个一致性的状态迁移到另一个一致性的状态;
  • 隔离性:事务执行成功之前所做的修改应该对其他事务不可见;
  • 持久性:事务执行成功之后所做的修改应当持久化到本地磁盘当中。

并发事务会产生哪些问题?

  • 脏读:事务还未提交,其所做的修改就可以被其他事务看到;
  • 不可重复读:事务开启时读取到的数据与事务执行过程中读取到的数据不一致;
  • 幻读:主要出现在区间查询的场景下,事务执行期间,两次区间查询的结果不一致。

MySQL 事务的隔离级别?

  • 读未提交:级别最低,可能发生脏读、不可重复读、幻读;
  • 读已提交:可能发生不可重复读和幻读;
  • 可重复读:InnoDB 的默认隔离级别,可能发生幻读;
  • 串行化:失去并发行,性能最差,每一次读写操作都需要独立加锁,安全性与一致性最强。

MVCC 实现原理?

针对数据库当中的每一条记录,都会新增若干个字段,其中最关键的一个字段是 DB_TRX_ID,它记录的是最后一个修改当前记录的事务 ID。此外,还有一个重要的 DB_ROLL_PTR 字段,它是回滚指针,指向当前记录之前的版本。

此外,针对每一次查询操作,会生成一个 Read View,它具有:

  • m_ids:生成 Read View 时活跃的事务 ID 列表;
  • min_trx_id:m_ids 中最小的事务 ID;
  • max_trx_id:m_ids 中最大的事务 ID;
  • creator_trx_id:创建该 Read View 的事务 ID。

可见性判断算法

  • 比较记录的 DB_TRX_ID 与 creator_trx_id,如果一致说明上一次修改由当前事务完成,当前记录对该事务可见。
  • 比较记录的 DB_TRX_ID 与 min_trx_id,如果 DB_TRX_ID 小于 min_trx_id,说明之前对该记录做出修改的事务已经提交,该记录对当前事务可见。
  • 比较记录的 DB_TRX_ID 与 max_trx_id,如果 DB_TRX_ID 大于等于 max_trx_id,说明当前记录由当前事务启动后的事务修改,该版本对当前事务不可见,通过 DB_ROLL_PTR 回滚到可见版本。
  • 检查 DB_TRX_ID 是否在 m_ids 中,如果在说明对当前记录做出修改的事务活跃,该记录对当前事务不可见。

幻读如何解决?

快照读(一致性非锁定读)
对于普通的 SELECT 查询语句,InnoDB 使用 MVCC 进行版本控制,避免看到其他事务插入的数据。

使用间隙锁 + 临键锁

  • 间隙锁:锁定索引记录之间的间隙;
  • 临键锁:锁定记录及其之前的间隙。

读已提交隔离级别如何实现?

在读已提交隔离级别下,每次执行 SELECT 时都会生成一个 Read View。创建 Read View 时已经提交的事务所做的修改对当前事务是可见的(即该隔离级别下会产生不可重复读的问题),但未提交及该事务之后开启的事务所做的修改对当前事务不可见。

复习 MySQL Day2:索引

在这里插入图片描述

MySQL 使用 B+ 树作为索引的优势是什么?

B+ 树是一种多叉树,其非叶子结点仅存放索引,而叶子结点才存放真正的数据,叶子结点之间会通过链表进行顺序连接。

通过 B+ 树存储千万级别的数据只需要三到四层,也就是说在进行数据库查询时只需要进行三到四次磁盘 I/O。此外,通过 B+ 数叶子结点之间的链表连接可以非常方便地进行区间查询。

在对 B+ 树进行修改时,只需要修改叶子结点即可,不需要修改非叶子结点,因此不涉及树结构的变动。

索引有哪几种?

  • 单值索引:一个索引只包含一个列,一个表可以有多个单值索引。
  • 唯一索引:索引列的值必须唯一,但允许有重复的 null。
  • 主键索引:设定数据库表中的某个键为主键时,它会自动成为主键索引。
  • 复合索引:一个索引包含多个列。
  • 前缀索引:对字符类型字段的前几个字符建立索引。建立前缀索引可以减少索引占用的存储空间,提升查询效率。

什么是最左匹配原则?

MySQL 的最左匹配原则是 B+ 树联合索引的核心特性,指查询时必须从索引的最左列开始,并按联合索引定义的列顺序依次匹配,否则联合索引失效。

1. 联合索引的结构
假设在表上建立了一个联合索引 INDEX(col1, col2, col3),B+ 树会按照 col1 -> col2 -> col3 的顺序组织数据:

  • 先按 col1 进行排序;
  • col1 相同则按 col2 进行排序;
  • col2 相同则按 col3 进行排序。

一个建立联合索引的例子如下:

CREATE TABLE users (id INT,name VARCHAR(50),age INT,city VARCHAR(50),INDEX idx_name_age_city (name, age, city)
);

上述 sql 语句在建表时,按照 name -> age -> city 的顺序建立了联合索引。

2. 最左匹配原则的规则

查询条件是否走索引原因
WHERE name = 'Alice'匹配最左列 name
WHERE name = 'Alice' AND age = 25按顺序匹配 name -> age
WHERE age = 25 AND city = 'Beijing'未从最左列 name 开始匹配
WHERE name = 'Alice' AND city = 'Beijing'⚠️name 走索引,city 因跳过了 age 而无法匹配
WHERE name LIKE 'A%'最左前缀匹配
WHERE name LIKE '%A'非前缀匹配,无法利用索引

3. 特殊情况
(1)跳过中间列
仅被跳过列之前的列会使用索引,导致查询效率下降。

(2)范围查询之后的列失效
使用范围查询会停止后序列的索引匹配。

(3)函数或表达式导致索引失效
对索引列使用函数或计算会破坏索引顺序。

索引区分度?

当查询优化器发现某个值在表中出现的数据行占比超过 30% 时,会忽略索引,全表扫描。

联合索引如何排序?

可以利用索引的有序性,对索引列和排序列建立联合索引。

使用索引有哪些缺陷?

索引实际上也是一张表,建立索引同样需要占用内存空间。

此外,索引不宜在需要频繁增删改的字段上建立,因为如果需要频繁增删改,不仅需要修改数据表,还需要修改索引,时间开销较大。

什么时候需要建立索引,什么时候不需要建立索引?

需要使用索引

  • 表的主键:自动建立主键索引;
  • 为表的字段引入唯一约束:建立唯一索引;
  • 直接条件查询的字段:经常使用 WHERE 查询条件的字段宜建立索引,以提高查询效率;
  • 查询中与其他表有关联的字段:宜对外键建立索引;
  • 查询中排序的字段:对排序字段建立索引可以大大提高排序速度;
  • 查询中统计或分组统计的字段:经常用于 GROUP BY 和 ORDER BY 的字段,可以创建联合索引。

不需要建立索引

  • 表的记录太少;
  • 经常增删改的字段;
  • 数据重复且分布平均的表字段;
  • 经常和主字段一起查询但主字段索引值较多的表字段。

使用索引的注意事项

  • like 语句的前导模糊查询会使索引失效,但非前导的模糊查询可行。
  • 负向查询不能使用索引;
  • 联合查询应注意最左匹配原则;
  • 避免过度使用索引,因为索引会引入额外的存储与维护开销;
  • 更新十分频繁的字段不宜建立索引;

WHERE 语句索引使用的注意事项

  • 联合索引时注意最左匹配原则;
  • 避免在索引列上引入计算或函数,这样会使索引列失效退化为全表扫描;
  • 使用范围查询后索引列失效;
  • LIKE 前导模糊查询会使索引失效;

索引什么时候失效?

  • 查询条件中带 OR 时可能失效,除非所有条件均建立了索引;
  • like 模糊查询时使用前导模糊,会使索引失效;
  • 索引列上引入计算和函数会使索引失效;
  • 联合索引查询时如违背最左匹配原则会导致索引部分失效或全部失效;
  • 如果 MySQL 估计全表扫描比使用索引更快,会全表扫描。

相关文章:

【每日八股】复习 MySQL Day2:索引

文章目录 昨日内容复习MySQL 事务的四大特性?并发事务会产生哪些问题?MySQL 事务的隔离级别?MVCC 实现原理?幻读如何解决?读已提交隔离级别如何实现? 复习 MySQL Day2:索引MySQL 使用 B 树作为索…...

2025深圳中兴通讯安卓开发社招面经

2月27号 中兴通讯一面 30多分钟 自我介绍 聊项目 我的优缺点,跟同事相比,有什么突出的地方 Handler机制,如何判断是哪个消息比较耗时 设计模式:模板模式 线程的状态 线程的开启方式 线程池原理 活动的启动模式 Service和Activity…...

MyBatis中的@Param注解-如何传入多个不同类型的参数

mybatis中参数识别规则 默认情况下,MyBatis 会按照参数位置自动分配名称:param1, param2, param3, ...或者 arg0, arg1。 // Mapper 接口方法 User getUserByIdAndName(Integer id, String name); 以上接口在XML中只能通过param1或者arg0这样的方式来引用,可读性差。 &l…...

【高频考点精讲】JavaScript中的访问者模式:从AST解析到数据转换的艺术

大家好呀!今天想和大家聊聊一个既实用又有点"高冷"的设计模式——访问者模式。这个模式在AST解析、Babel插件开发中无处不在,但很多同学可能一直没搞明白它到底妙在哪里。 一、生活中的访问者模式 想象一下你开了一家奶茶店,店里…...

crictl 拉取镜像报错 Unimplemented desc = unknown service runtime.v1.ImageService

具体报错内容如下 crictl pull registry.cn-beijing.aliyuncs.com/kubesphereio/pause:3.9 FATA[0000] validate service connection: validate CRI v1 image API for endpoint "unix:///run/containerd/containerd.sock": rpc error: code Unimplemented desc un…...

1.第一章:数据治理的历史演进

文章目录 1.1 数据管理的进化之路1.2 数据整合时代的突破与局限1.3 数据治理时代的全面展开1.4 智能数据治理的突破性进展1.5 数据分类的根本价值与方法论1.6 数据分类的新方向 第一章快速的过一下: 相关专栏:数据分类的艺术 1.1 数据管理的进化之路 数…...

ApacheJmeter使用权威指南

1. JMeter 概述 JMeter 是一款开源的性能测试工具,支持HTTP、FTP、JDBC、SOAP等协议,广泛用于负载测试、压力测试和功能测试。 核心功能: 模拟多用户并发请求生成实时测试报告支持分布式测试断言验证响应结果 2. 安装与配置 2.1 环境要求…...

Ethan独立开发产品日报 | 2025-04-22

1. Agent Simulate 用数千个数字人来测试你的人工智能应用。 Agent Simulate 让你在发布之前,能够在一个安全的环境中模拟和测试大型语言模型(LLM)代理。它帮助你调试行为、加快迭代速度,并降低生产风险,专为代理开发…...

C++二分法详解

C二分法详解 文章目录 C二分法详解一、算法简介二、算法原理三、代码实现四、复杂度分析五、常见练习题 一、算法简介 二分查找(Binary Search)是一种 高效搜索算法 ,适用于 有序序列 。通过每次将搜索范围减半,时间复杂度为O(log…...

【UML建模】数据流图 绘制

管理-相关文档,希望互相学习,共同进步 风123456789~-CSDN博客 (一)知识点 1.1定义 数据流图或数据流程图(Data Flow Diagram,简称DFD),是需求分析阶段(结构化分析 SA)中主要表达工具 , 用于表示软件模型的一种图示方法。它以图形的方式描绘数据在系统中流动和处理…...

django软件开发招聘数据分析与可视化系统设计与实现(源码+lw+部署文档+讲解),源码可白嫖!

摘要 时代在飞速进步,每个行业都在努力发展现在先进技术,通过这些先进的技术来提高自己的水平和优势,招聘信息管理系统当然不能排除在外。软件开发招聘数据分析与可视化系统是在实际应用和软件工程的开发原理之上,运用Python语言…...

HarmonyOS-ArkUI 一镜到底之组件内隐式共享元素转场 geometryTransition

geometry transition 英译为: 几何过渡。这个动画写法挺简单的,不妨碍人家的炫酷。这种效果其实就是传说中的一镜到底!从现在开始,本文geometry transition 与一镜到底具有同样的含义,指的是同样的概念。 共享元素转场(一镜到底)指的是什么效果(图文对比) 共享元素转场着…...

Visual Studio2022 配置 SDL3及拓展库

SDL(Simple DirectMedia Layer)是一个开源的跨平台多媒体开发库,使用C语言编写,主要用于游戏、模拟器和媒体播放器等多媒体应用的开发。它提供了控制图像、声音、输入输出等功能的函数,使开发者能够用相同的代码开发跨…...

Apache Flink 深度解析:流处理引擎的核心原理与生产实践指南

Apache Flink 深度解析:流处理引擎的核心原理与生产实践指南 引言:实时计算的范式革命 2023年双十一期间,某头部电商平台基于Flink构建的实时风控系统成功拦截了每秒超过120万次的异常交易请求。这背后是Apache Flink作为第四代计算引擎的强…...

17.QT-Qt窗口-工具栏|状态栏|浮动窗口|设置停靠位置|设置浮动属性|设置移动属性|拉伸系数|添加控件(C++)

⼯具栏 ⼯具栏是应⽤程序中集成各种功能实现快捷键使⽤的⼀个区域。可以有多个,也可以没有,它并不是应⽤程序中必须存在的组件。它是⼀个可移动的组件,它的元素可以是各种窗⼝组件,它的元素通常以图标按钮的⽅式存在。如下图为⼯…...

开源模型应用落地-语音合成-Spark-TTS-零样本克隆与多语言生成的突破

一、前言 在人工智能生成内容(AIGC)浪潮中,文本到语音(TTS)技术始终面临一个核心矛盾:如何在效率与自然度之间找到平衡?传统TTS系统依赖复杂的多阶段流程,从文本分析到声学建模再到音频生成,每一步都可能成为“自然感”的瓶颈。而新兴的Spark-TTS ,凭借其颠覆性的“单…...

锁存器知识点详解

一、锁存器基础概念​ 锁存器(Latch)是一种基础的数字电路存储元件,能够在时钟信号或使能信号的控制下,暂时保存数据状态。与触发器(Flip-Flop)不同,锁存器是电平敏感的,即在使能信…...

武装Burp Suite工具:xia SQL自动化测试_插件

武装Burp Suite工具:xia SQL自动化测试_插件 插件作者介绍:本插件仅只插入单引号,没有其他盲注啥的,且返回的结果需要人工介入去判断是否存在注入,如果需要所有注入都测试,请把burp的流量转发到xray。 目录…...

Java面试:探索Spring Boot与微服务的深度挑战

场景:互联网大厂Java求职面试 在一个阳光明媚的上午,赵大宝来到了知名互联网大厂进行Java开发岗位的面试。面试官是一位严肃且经验丰富的技术专家,准备对赵大宝进行技术上的全面考核。 第一轮提问:基础知识与Spring框架 面试官…...

【redis】主从复制

Redis的单机模式仅部署单个实例,一旦节点宕机或网络故障,所有依赖Redis的服务将不可用,这就是所谓的单点故障问题。单节点需承担全部读写请求,并发量高时可能成为性能瓶颈。单节点受限于物理内存容量,无法突破内存物理…...

Qt多线程学习初级指南

一、引言部分 1. 多线程编程的重要性 在当今计算环境中,多线程编程已成为开发高性能应用程序的关键技术。现代应用程序面临着三大挑战: GUI响应性:用户界面需要保持流畅响应,即使在进行后台计算时 多核利用率:随着多…...

《解锁vLLM:大语言模型推理的加速密码》

《解锁vLLM:大语言模型推理的加速密码》 引言:AI 时代的推理引擎之光 在当今的人工智能领域,大语言模型无疑是最为耀眼的明星。它们犹如智能世界的基石,为无数的应用和创新提供了强大的支持。从日常的智能聊天机器人,到复杂的文本生成、机器翻译任务,大语言模型都展现出…...

1.1 java开发的准备工作

准备工作 一.JDK 开始写java程序之前需要安装jdk jdk是java开发工具,包含着JRE和里面的JVM(虚拟机,可以使得不同环境下都能运行Java程序),和开发工具。 二.了解写程序的三大步骤步骤 java成功运行主要需要经过代码编写,编译&a…...

矩阵运算 第30次CCF-CSP计算机软件能力认证

n和d差距这么大 就可以想到改变矩阵运算顺序来解决这道题 假设两个矩阵,分别为a行b列与b行c列,那么一次矩阵运算复杂度是a乘以c乘以b,对于这题,如果从左往右运算复杂度将会到 1e4乘以1e4乘以20>1e9 (n1e4,d20),常识…...

【Tools】Git常见操作

Git 1 配置 包括: 用户信息、分支策略、合并策略、钩子脚本路径等。 git config -l # 等价 --local --list git config --global --list # 全局 git config --local --list # 当前仓库git config user.name git config user.emailgit config user.name "Your Name"…...

国产RK3568+FPGA以 ‌“实时控制+高精度采集+灵活扩展”‌ 为核心的解决方案

RK3568FPGA方案在工业领域应用的核心优势 一、‌实时性与低延迟控制‌ ‌AMP架构与GPIO中断技术‌ 通过非对称多处理架构(AMP)实现Linux与实时操作系统(RTOS/裸机)协同,主核负责调度,从核通过GPIO中断响应紧…...

UnoCSS原子CSS引擎-前端福音

UnoCSS是一款原子化的即时按需 CSS 引擎,其中没有核心实用程序,所有功能都是通过预设提供的。默认情况下UnoCSS应用通过预设来实现相关功能。 UnoCSS中文文档: https://www.unocss.com.cn 前有很多种原子化的框架,例如 Tailwind…...

0.(新专栏目录)数据分类的艺术:从理论到实践的全面指南

前言 话说天下大数据事,分久必合,合久必分。在这个数据爆炸的时代,我们见证了数据的分散与聚合,见证了数据从孤岛到互联的转变。 回望数据发展的历程,最初企业的数据系统往往是各自为政的,各部门、各系统…...

leetcode 二分查找应用

34. Find First and Last Position of Element in Sorted Array 代码&#xff1a; class Solution { public:vector<int> searchRange(vector<int>& nums, int target) {int low lowwer_bound(nums,target);int high upper_bound(nums,target);if(low high…...

航电系统之编队运动控制技术篇

航电系统的编队运动控制技术是现代航空航天领域的关键技术之一&#xff0c;涉及多飞行器协同飞行中的导航、通信、控制与决策。 一、技术原理 编队运动控制技术的核心目标是通过航电系统实现多飞行器&#xff08;如无人机、卫星等&#xff09;在空间或时间上的协同运动。其基本…...

Elasticsearch(ES)中的脚本(Script)

文章目录 一. 脚本是什么&#xff1f;1. lang&#xff08;脚本语言&#xff09;2. source&#xff08;脚本代码&#xff09;3. params&#xff08;参数&#xff09;4. id&#xff08;存储脚本的标识符&#xff09;5. stored&#xff08;是否为存储脚本&#xff09;6. script 的…...

Collection集合,List集合,set集合,Map集合

文章目录 集合框架认识集合集合体系结构Collection的功能常用功能三种遍历方式三种遍历方式的区别 List集合List的特点、特有功能ArrayList底层原理LinkedList底层原理LinkedList的应用场list:电影信息管理模块案例 Set集合set集合使用哈希值红黑树HashSet底层原理HashSet集合元…...

Kafka 核心使用机制总结

Kafka 核心使用机制总结 Kafka 核心使用机制总结1. 分区 (Partitions) - 实现伸缩性与并行处理2. 副本 (Replicas) / 复制因子 (Replication Factor) - 实现高可用与容错3. 消费者组 (Consumer Groups) - 控制消息分发与消费进度4. 数据保留策略 (Retention Policies) - 管理存…...

【MCP】第二篇:IDE革命——用MCP构建下一代智能工具链

【MCP】第二篇&#xff1a;IDE革命——用MCP构建下一代智能工具链 一、引言二、IDE集成MCP2.1 VSCode2.1.1 安装VSCode2.1.2 安装Cline2.1.3 配置Cline2.1.4 环境准备2.1.5 安装MCP服务器2.1.5.1 自动安装2.1.5.2 手动安装 2.2 Trae CN2.2.1 安装Trae CN2.2.2 Cline使用2.2.3 内…...

WebSocket是h5定义的,双向通信,节省资源,更好的及时通信

浏览器和服务器之间的通信更便利&#xff0c;比http的轮询等效率提高很多&#xff0c; WebSocket并不是权限的协议&#xff0c;而是利用http协议来建立连接 websocket必须由浏览器发起请求&#xff0c;协议是一个标准的http请求&#xff0c;格式如下 GET ws://example.com:3…...

【PostgreSQL教程】PostgreSQL 特别篇之 语言接口连接Perl

博主介绍:✌全网粉丝22W+,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物联网、机器学习等设计与开发。 感兴趣的可…...

springboot-基于Web企业短信息发送系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 当今社会已经步入了科学技术进步和经济社会快速发展的新时期&#xff0c;国际信息和学术交流也不断加强&#xff0c;计算机技术对经济社会发展和人民生活改善的影响也日益突出&#xff0c;人类的生存和思考方式也产生了变化。本系统采用B/S架构&#xff0c;数据库是MySQL…...

Centos9安装docker

1. 卸载docker 查看是否安装了docker yum list | grep docker卸载老版本docker&#xff0c;拷贝自官网 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine卸载新版本…...

MySQL表的操作

MySQL表的操作 1. 创建表 在创建表前&#xff0c;需要先进入到某个数据库&#xff1a; use db_name创建表时&#xff0c;最好提前设计好表应该有的所有内容&#xff0c;否则后续添加或删除表的列可能会引发一连串的问题。 create table tb_name (field1 data_type [comment…...

Jmeter中同步定时器使用注意点

1.设置数量不可大于总线程数量&#xff0c;不然会一直等待 2.设置数量必须与总线程数量成整数倍数&#xff0c;不然还是要一直等。 3.当配置的数量小于线程数时&#xff0c;最好把循环打开&#xff0c;避免最后一次未准备好的线程数量达不到并发数。...

从零开始搭建Django博客③--前端界面实现

本文主要在Ubuntu环境上搭建&#xff0c;为便于研究理解&#xff0c;采用SSH连接在虚拟机里的ubuntu-24.04.2-desktop系统搭建&#xff0c;当涉及一些文件操作部分便于通过桌面化进行理解&#xff0c;通过Nginx代理绑定域名&#xff0c;对外发布。 此为从零开始搭建Django博客…...

使用Handsontable实现动态表格和下载表格

1.效果 2.实现代码 首先要加载Handsontable&#xff0c;在示例中我是cdn的方式引入的&#xff0c;vue的话需要下载插件 let hot null;var exportPlugin null;function showHandsontable(param) {const container document.getElementById("hot-container");// 如果…...

结合地理数据处理

CSV 文件不仅可以存储表格数据&#xff0c;还可以与地理空间数据结合&#xff0c;实现更强大的地理处理功能。例如&#xff0c;你可以将 CSV 文件中的坐标数据转换为点要素类&#xff0c;然后进行空间分析。 示例&#xff1a;将 CSV 文件中的坐标数据转换为点要素类 假设我们有…...

使用Geotools实现将Shp矢量文件加载SLD并合并图例生成-以湖南省周边城市为例

目录 前言 一、技术实现简介 1、生成成果说明 2、生成流程图说明 二、具体生成实践 1、渲染地图 2、生成图例 3、合并图像及输出 三、总结 前言 在当今数字化时代&#xff0c;地理信息系统&#xff08;GIS&#xff09;技术已成为城市管理、资源规划、环境监测等众多领域…...

openGauss数据库:起源、特性与对比分析

openGauss数据库&#xff1a;起源、特性与对比分析 一、起源与发展历程 1. 技术背景与开源历程 openGauss是由华为公司主导开发的开源关系型数据库管理系统&#xff0c;其技术根源可追溯至PostgreSQL。2019年&#xff0c;华为在内部整合了多个数据库产品线&#xff08;如GMDB…...

相机中各个坐标系的转换关系如像素坐标系到世界坐标系以及相机标定的目的

一、背景 无论是机器人领域、SLAM还是自动驾驶领域&#xff0c;都会涉及相机标定&#xff0c;但是看了很多博客&#xff0c;都是各种坐标系的变换&#xff0c;没有从上层说明进行坐标变换的目的是什么&#xff0c;以及相机标定完成后&#xff0c;是已知像素坐标求世界坐标&…...

ubuntu24设置拼音输入法,解决chrome不能输入中文

## 推荐方案&#xff1a;使用 Fcitx5 Fcitx5 是当前在 Wayland 环境下兼容性最好的输入法框架。 ### 1. 安装 Fcitx5 bash sudo apt update sudo apt install fcitx5 fcitx5-chinese-addons fcitx5-frontend-gtk3 fcitx5-frontend-gtk4 fcitx5-frontend-qt5 fcitx5-module-c…...

linux内核进程管理(1)——创建,退出

linux源码阅读——进程管理&#xff08;1&#xff09; 1. 进程的基本介绍1.1 linux中进程和线程的区别1.2 task_struct中的基本内容1.3 命名空间ns(namespace)命名空间结构图Linux 中的命名空间类型 1.4 进程标识符 2. 创建一个进程的流程2.1 CLONE宏2.2 创建进程系统调用1. do…...

容器修仙传 我的灵根是Pod 第8章 护山大阵(DaemonSet)

第三卷&#xff1a;上古遗迹元婴篇 第8章 护山大阵&#xff08;DaemonSet&#xff09; 九霄之上&#xff0c;雷云如怒海翻腾。 天调度宗的护山大阵「九霄雷光阵」正发出悲鸣&#xff0c;七十二根镇山雷柱已有半数熄灭。每根雷柱底部&#xff0c;本该守护节点的「雷符傀儡」&a…...

使用Python将YOLO的XML标注文件转换为TXT文件格式

使用Python将YOLO的XML标注文件转换为TXT文件格式&#xff0c;并划分数据集 import xml.etree.ElementTree as ET import os from os import listdir, getcwd from os.path import join import random from shutil import copyfile from PIL import Image# 只要改下面的CLASSE…...