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

【MySQL】索引事务

索引 

1.索引概念 

数据库使用select查询需要将表中所有的数据都遍历一遍筛选出满足where条件的,如果表中数据非常多,遍历一遍就需要O(n)复杂度是非常高的,为此就引入了索引的概念。

索引是查询的优化手段,避免对表进行遍历,但是它会降低插入、删除、修改的速度并且占用空间。

 2.索引的操作

1.创建索引

 create index 索引名 on 表名(列名……);

  • 一个索引是针对一个列来指定的,只有针对这一列进行条件查询的时候,查询才能更快 
  • 如果某一字段(列)被约束【主键、unique、外键】,那么就不需要再创建索引了,系统会主动创建被约束的那列的索引
  • 创建索引时,需要对数据将进行整理,如果在该表中存在巨大的数据,那么创建索引会导致数据服务器卡住,数据可能就会产生丢失。如果想要修改索引,最好就是在另一个电脑上创建同样的表,把表上的索引创建好,再把之前的数据导入另一个电脑的mysql服务器上。(用新的数据库替换旧的数据库)

2.查看索引

show index from 表名;

约束条件产生的索引:如果是主键,那么索引名就是prinmary;如果是unique唯一或者外键,那么该字段的索引名与字段名相同;

 

3.删除索引

 drop index 索引名 on 表名;

自己create创建的索引是可以随时删除的,但是系统创建的索引是不能删除的。

3.索引的内部逻辑 

索引也是通过数据结果实现的。一个二叉树搜索树查询的复杂度是O(N),;哈希表查询是的复杂度是O(1);但是这些都不适合数据库作为索引,哈希表是进行精准匹配的,不能进行范围查询,更不能模糊匹配所以不适合。

如果二叉搜索树中引入平衡机制即AVL树、红黑树,这个是可以精准匹配、范围查询、模糊匹配的,但是它的查询复杂度还是有点高O(logN); 

索引内部是一个改进的树形结构B+树(又称N叉搜索树)【它与二叉搜索树相比:树的高度减少】。

 

  1. B+树的是一个N叉搜索树,一个节点存在n个key,就可以划分n个区间
  2. 每个节点上n个key,最后一个就相当于前子树的最大值
  3. 父结点的每个key会以最大值的身份在子节点中存在(key可能会重复出现)
  4. B+树使用链表把叶子节点串起来

B+树的优点

  • N叉搜索树,树的高度有限,降低IO次数
  • 非常擅长范围查询
  • 所有查询都落在叶子节点,查询和查询之间时间开销是稳定的
  • 由于叶子结点是全集,行数据只存储在叶子结点上,非叶子节点只存储一个用来排序的key

事务

1.事务的概念 

在 MySQL 里,事务是由一组 SQL 语句构成的一个逻辑工作单元,这组语句要么全部成功执行,要么全部不执行。比如,在一个银行转账事务里,从账户 A 向账户 B 转账 100 元,这包含了从账户 A 扣除 100 元与向账户 B 增加 100 元两个操作。只有当这两个操作都成功执行,事务才算成功;若其中任何一个操作失败,整个事务就会回滚,账户 A 和账户 B 的余额都不会发生改变。

    2.事务的操作 

    1.开启事务:start transaction 

    2.事务结束:commit

    3.主动触发回滚:rollback

    单独执行每个sql,都自成一个体系,此时sql之间就没有原子性 ;rollback一般要搭配一些条件判断逻辑使用的,sql也能支持条件、循环、变量、函数,更多是搭配其他语言。

    回滚是怎么做到的?

    通过日志的方式记录事务中关键操作(打印出来的内容存在文件里,即使主机掉电也不会影响,一旦重新启动主机,mysql也重新启动,就会发现回滚日志中一些需要进行回滚的操作,于是就可以完成回滚了)

    3.事务的特性

    事务能够保证数据库操作的原子性、一致性、隔离性和持久性,也就是通常所说的 ACID 特性。以下是对这些特性的详细说明:

    1. 原子性:原子性指的是事务是一个不可分割的工作单位,事务中的操作要么全部成功,要么全部失败回滚。
    2. 一致性:一致性意味着事务执行前后,数据库要从一个一致性状态转变到另一个一致性状态。一致性和原子性是密切相关的,例如在上述转账事务中,无论事务执行成功与否,账户 A 和账户 B 的总金额都应该保持不变。
    3. 隔离性:隔离性是指多个事务并发执行时,一个事务的执行不能被其他事务干扰。各个事务之间是相互隔离的,就像在单独执行一样。“数据正确”和“效率”之间的权衡。
    4. 持久性:持久性表示事务一旦提交,它对数据库中数据的改变就是永久性的,即便数据库发生故障也不会丢失。通常,数据库通过将事务日志写入磁盘来保证持久性,当数据库崩溃后,可以利用事务日志来恢复已经提交的事务。

    并发执行:mysql是一个客户端服务器结构的程序,一个服务器可以给多个客户端提供服务,多个客户端都会让数据库执行事务。

    客户端1提交事务1,执行一半,客户端2提交事务2,数据库就需要同时处理这两个事务。如果希望数据库服务器执行效率高,就希望提高并发程度,但是提高并发程度后可能会存在一些问题,导致数据出现“错误”。

    • “脏读问题”:事务A正在写数据的过程中,事务B读取同一个数据,但是事务A修改了数据,事务B还是之前的数据,此时事务B读到的数据就是一个无效的、过时的数据,就称为“脏数据”;

    解决方法:(“写枷锁” )让事务A先写,确定写完后提交代码到码云后,事务B再写,此时A再写过程中B什么不能写。导致并发执行的效率降低,但是数据靠谱。

    •  “不可重复读”:事务A在内部多次读取同一个数据出现不同的情况(也就是事务A在读的过程中,事务B在修改数据并提交了事务);

    解决方法:(“读枷锁“)事务A在读的过程中,事务B不能修改,也就是事务A读的时候,事务B对数据什么都不干。导致并发执行有降低,但是隔离性(两个事物的影响程度)提交,准确性提高。

    • “幻读”:事务A执行过程中,两次读取数据虽然没有改变,但是查询结果的集合改变了;

    解决方法:引入串行化方式,保持绝对串行执行事务,此时完全没有并发执行。也就是并发程度最低,隔离性最高,效率最低,数据最准确。 


    隔离级别

    脏读:

    1.read uncommitted(读未提交)并发执行最高、速度最快、隔离性最低、准确性最低

    2.read committed(读已提交)引入了“读枷锁”,只能读写完后提交,并发执行降低、速度降低、准确性提交

    不可重复读:

    repeatable read(可重复读)引入了“写枷锁”和“读枷锁”,写的时候不能读,读的时候不能写,并发执行进一步降低,速度也降低,隔离性提高,准确性提高

    幻读:

    serializable(串行化) 一个一个执行事务,并发执行最低,速度最低,隔离性最高,准确性最高

    相关文章:

    【MySQL】索引事务

    索引 1.索引概念 数据库使用select查询需要将表中所有的数据都遍历一遍筛选出满足where条件的,如果表中数据非常多,遍历一遍就需要O(n)复杂度是非常高的,为此就引入了索引的概念。 索引是查询的优化手段,避免对表进行遍历&…...

    STL详解 - list

    目录 一、List容器概述 1.1 什么是list? 1.2 核心特点 二、List的定义与初始化 三、List 的基本操作 3.1 插入操作 🌵头插和尾插 🌵指定位置插入 3.2 删除操作 🍋头删和尾删 🍋指定位置删除 四、List 的迭代…...

    LinkedList<Integer> 常用方法通俗讲解

    LinkedList<Integer> linkedList new LinkedList<>(); 创建了一个整数类型的链表。链表就像一列火车&#xff0c;每节车厢(节点)都连接着下一节车厢。下面我用通俗易懂的方式讲解它的主要方法&#xff1a; 1. 添加元素 add(5) - 在链表末尾添加数字5&#xff0c…...

    [250416] GitHub Action 新升级,支持 Windows on Arm

    目录 GitHub Actions 更新&#xff1a;Windows arm64 托管运行器现已推出公共预览版 GitHub Actions 更新&#xff1a;Windows arm64 托管运行器现已推出公共预览版 现在&#xff0c;GitHub 为公共代码仓库免费提供了基于 Windows arm64 架构的托管运行器&#xff08;Hosted R…...

    Spring Boot 整合 Redis 实现点赞功能:从基础到实践

    在当今互联网应用开发中&#xff0c;点赞功能几乎成为了各类内容平台的标配。它不仅能增加用户与内容之间的互动&#xff0c;还能直观地反映内容的受欢迎程度。本文将详细介绍如何使用 Spring Boot 整合 Redis 来实现一个简单的文章点赞功能&#xff0c;让你轻松掌握这一实用技…...

    深入解析布尔注入:原理、实战与防御

    目录 一、布尔注入的原理与核心逻辑 二、布尔注入的实战步骤 三、关键函数与绕过技巧 四、实战案例&#xff1a;获取数据库名称 五、防御策略与最佳实践 六、总结 一、布尔注入的原理与核心逻辑 布尔注入&#xff08;Boolean-Based Blind SQL Injection&#xff09;是一种…...

    1.2 使用RawInputSharp来取得键盘硬件信息以及虚拟码

    RawInputSharp 是一个 C# 库&#xff0c;用于处理 Windows 的原始输入(Raw Input) API&#xff0c;它允许开发者直接访问键盘、鼠标等输入设备的底层数据。 本例介绍如何读取键盘的虚拟码以及键盘硬件信息。效果如下图&#xff1a; 示例中&#xff1a;开始是1键的按下与抬起&am…...

    C++23 中的可选扩展浮点类型:std::float{16|32|64|128}_t 和 std::bfloat16_t

    文章目录 1. 扩展浮点类型概述2. 如何使用这些类型3. 编译器支持4. 特性测试宏5. 类型转换和重载决议6. 标准库支持7. 应用场景8. 总结 C23 引入了可选的扩展浮点类型&#xff0c;包括 std::float16_t、 std::float32_t、 std::float64_t、 std::float128_t 和 std::bfloa…...

    JVM 内存调优

    内存调优 内存泄漏&#xff08;Memory Leak&#xff09;和内存溢出&#xff08;Memory Overflow&#xff09;是两种常见的内存管理问题&#xff0c;它们都可能导致程序执行不正常或系统性能下降&#xff0c;但它们的原因和表现有所不同。 内存泄漏 内存泄漏&#xff08;Memo…...

    数据结构(java)栈与队列

    栈&#xff1a;&#xff08;先进后出&#xff09; 入栈: 1.普通栈一定要放、最小栈放的原则是: *如果最小栈是空的&#xff0c;那么放 *如果最小栈的栈顶元素没有当前的元素小&#xff0c;则放 2.如果要放的的元素小于等于最小栈栈顶元素可以放吗?放 出栈: 需要…...

    医疗大模型落地方案:技术选型、部署策略与调优

    医疗大模型的落地应用已成为推动医疗行业数字化转型的重要引擎。本文将从技术选型、部署策略和调优方案三大维度&#xff0c;系统性地解析医疗大模型落地的关键要素&#xff0c;为医疗机构提供可操作的落地指南。随着人工智能技术的快速发展&#xff0c;医疗大模型已在影像诊断…...

    JVM:类加载子系统

    一、类加载子系统概述 类加载子系统由多个类加载器组成&#xff0c;它们负责从文件系统或者网络中读取二进制形式的字节码&#xff08;.class&#xff09;文件&#xff0c;并将其加载进 JVM。字节码文件中关于类的定义、类中属性的定义、类中方法的定义以及类中方法的字节码等…...

    独家!美团2025校招大数据题库

    推荐阅读文章列表 2025最新大数据开发面试笔记V6.0——试读 我的大数据学习之路 面试聊数仓第一季 题库目录 Java 1.写一个多线程代码 2.写一个单例代码 3.LinkedBlockingQueue原理 4.模板设计模式 5.如何设计一个 生产者-消费者队列 6.堆内存和栈内存 7.ThreadLo…...

    Angular 框架详解:从入门到进阶

    Hi&#xff0c;我是布兰妮甜 &#xff01;在当今快速发展的 Web 开发领域&#xff0c;Angular 作为 Google 主导的企业级前端框架&#xff0c;以其完整的解决方案、强大的类型系统和丰富的生态系统&#xff0c;成为构建大型复杂应用的首选。不同于其他渐进式框架&#xff0c;An…...

    使用Vue 3与.NET 8.0通过SignalR实现实时通信,并结合JWT身份验证

    实时通信是一个非常重要的功能。SignalR是一个强大的库&#xff0c;能够帮助我们轻松实现客户端和服务器之间的实时数据传输。本文将结合你的代码示例&#xff0c;向你展示如何使用Vue 3作为前端框架&#xff0c;ASP.NET Core作为后端框架&#xff0c;通过SignalR实现实时消息通…...

    Harmonyos-Navigation路由跳转

    Harmonyos-Navigation路由跳转 概述Navigation路由跳转模块内页面路由系统路由表测试页代码创建并配置路由表文件配置创建好的路由表文件跳转页面 自定义路由表 跨模块路由封装库模块路由跳转工具类 概述 Navigation是路由容器组件&#xff0c;一般作为首页的根容器&#xff0…...

    《人工智能应用创新》5天出审稿意见!

    期刊简介 《人工智能应用创新&#xff08;Innovative Applications of AI&#xff09;》 &#xff08;ISSN&#xff1a;3078-2147&#xff09;是由香港修墨信息工程研究院举办&#xff0c;经国际同行评审后收录的学术期刊。本刊共分三个栏目&#xff1a;综述分析、应用示范、前…...

    Excel数据自动填充到Word自定义表格

    上一份工作在一家国企做软件测试&#xff0c;需求变来变去&#xff08;3天一小改&#xff0c;5天换版面&#xff09;&#xff0c;xmind要先整理一遍测试用例&#xff08;版本迭代&#xff0c;该废的废&#xff0c;该加的加&#xff09;&#xff0c;完了细节在禅道里补充&#x…...

    Spring Boot一次接口请求涉及的完整执行链路

    Spring Boot一次接口请求涉及的完整执行链路 &#x1f501; Spring 项目请求执行链路&#xff08;简化视图&#xff09; 客户端请求&#xff08;浏览器、Postman&#xff09;↓ Tomcat&#xff08;Servlet 容器&#xff09;↓ 【Listener 监听器】↓ 【Filter 过滤器】&#x…...

    mapbox基础,加载视频到地图

    👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️raster 栅格图层 api二、🍀加载视频到…...

    Android动态化技术优化

    Android动态化技术优化 一、WebView优化基础 1.1 WebView性能瓶颈 初始化耗时内存占用高页面加载慢白屏问题 1.2 WebView基本配置 class OptimizedWebView : WebView {init {// 开启硬件加速setLayerType(LAYER_TYPE_HARDWARE, null)// 配置WebSettingssettings.apply {//…...

    Spring Boot 自定义定时任务组件深度解析:Quartz 集成与设计模式实战

    一、组件设计目标 解决痛点&#xff1a; 简化 Quartz 原生 API 的复杂性统一任务调度管理&#xff08;增删改查、日志、重试&#xff09;与 Spring Boot 生态无缝整合 二、实现步骤详解 1. 组件初始化配置 1.1 初始化 Quartz 表结构 下载 SQL 脚本 &#x1f517; 官方表…...

    Java Bean演进历程:从POJO到Spring Boot配置绑定

    一、早期阶段&#xff1a;手动编写Java Bean 基本结构 私有属性&#xff1a;所有字段均为private&#xff0c;保证封装性。 公共构造方法&#xff1a;提供无参构造&#xff08;JavaBean规范&#xff09;或有参构造&#xff08;POJO常见&#xff09;。 Setter/Getter方法&…...

    信息科技伦理与道德0:课程安排

    1 课程安排 分组讨论的议题如下&#xff1a; 1.1 生成对抗网络&#xff08;GAN&#xff09; &#xff08;1&#xff09;GAN生成伪造人脸与身份冒用风险 算法原理&#xff1a; GAN通过生成器&#xff08;Generator&#xff09;和判别器&#xff08;Discriminator&#xff09;…...

    STM32F103C8T6-基于FreeRTOS系统实现步进电机控制

    引言 上一篇文章讲述了如何使用蓝牙连接stm32进行数据收发控制步进电机&#xff0c;这篇在之前的基础上通过移植操作系统&#xff08;FreeRTOS或者其他的也可以&#xff0c;原理操作都类似&#xff09;实现步进电机控制。 上篇博客指路&#xff1a;STM32蓝牙连接Android实现云…...

    数字资产和交易解决方案

    数字资产和交易解决方案 一、背景 &#xff08;一&#xff09;数字经济的蓬勃发展 随着信息技术的飞速发展&#xff0c;数字经济已成为全球经济增长的新引擎。数字资产作为数字经济的重要组成部分&#xff0c;其价值逐渐被人们所认识和重视。数字资产包括但不限于数字货币、…...

    计算机网络 实验四 静态路由的配置与应用

    一、实验目的 熟悉路由器的工作原理&#xff1b;熟悉静态路由的原理&#xff1b;熟悉华为网络模拟器的使用方法&#xff1b;掌握网络拓扑图的绘制&#xff1b;掌握路由器的配置。 二、实验设备 PC、华为模拟器ENSP。 三、实验步骤 知识准备&#xff1a;路由器和静态路由的…...

    二进制求和 - 简单

    ************* C topic: 67. 二进制求和 - 力扣&#xff08;LeetCode&#xff09; ************* Give the topic an inspection. Too many works these days. And no spare time for code learning. However here I am gagin. This topic is an easy one and I want to pra…...

    【C++】 —— 笔试刷题day_18

    一、压缩字符串(一) 题目解析 题目给定一个字符str&#xff0c;让我们将这个字符串进行压缩&#xff1b; **压缩规则&#xff1a;**出现多次的字符压缩成字符数字&#xff1b;例如aaa压缩成a3。如果字符值出现一次&#xff0c;1不用写。 算法思路 这道题总的来说就非常简单了…...

    LeetCode 热题 100_最长递增子序列(87_300_中等_C++)(动态规划)

    LeetCode 热题 100_最长递增子序列&#xff08;87_300&#xff09; 题目描述&#xff1a;输入输出样例&#xff1a;题解&#xff1a;解题思路&#xff1a;思路一&#xff08;动态规划&#xff09;&#xff1a; 代码实现代码实现&#xff08;思路一&#xff08;动态规划&#xf…...

    asp-for等常用的HTML辅助标记?

    在ASP.NET Core Razor Pages 和 MVC 中&#xff0c;除了asp-for之外&#xff0c;还有许多常用的 HTML 辅助标记&#xff0c;下面为你详细介绍&#xff1a; 表单与路由相关 asp-action 和 asp-controller 用途&#xff1a;这两个标记用于生成表单或链接的 URL&#xff0c;指定…...

    map用法介绍

    在 C 里&#xff0c;map是标准库提供的一种关联容器&#xff0c;它以键 - 值对的形式存储元素&#xff0c;并且按键的升序排列。下面为你展示如何在 C 用map。 如果没有用万能头的时候&#xff0c;需要加入#include 用法介绍&#xff1a; 映射[需要注意map的映射是1对1的不能出…...

    AIGC-十款知识付费类智能体完整指令直接用(DeepSeek,豆包,千问,Kimi,GPT)

    Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列AIGC(GPT、DeepSeek、豆包、千问、Kimi)👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资…...

    一页概览:桌面虚拟化方案

    2010年左右手绘的&#xff0c;用的是公司的信纸&#xff0c;马克笔。当时在买VMware和Citrix的桌面虚拟化方案&#xff0c;以及Wyse的瘦客户端。...

    通过导入 Excel 的方式复制文件或文件夹

    在进行文件或文件夹的批量整理时&#xff0c;许多人都会遇到需要将大量文件或文件夹复制到另一个文件夹中的问题。传统的手动复制粘贴方法不仅繁琐&#xff0c;而且效率低下。今天给大家介绍一种方法&#xff0c;可以实现将多个不同文件夹中的文件复制到一个或者多个文件夹&…...

    Python单例设计模式深度解析

    目录 一、什么是单例设计模式 核心特点 二、为什么需要单例模式 典型应用场景 优势对比 三、Python实现单例的三种方式 1. 使用__new__方法&#xff08;经典实现&#xff09; 2. 使用装饰器实现 3. 使用模块实现&#xff08;Python特有&#xff09; 四、深入理解__new…...

    WPF 图标原地旋转

    如何使元素原地旋转 - WPF .NET Framework | Microsoft Learn <ButtonRenderTransformOrigin"0.5,0.5"HorizontalAlignment"Left">Hello,World<Button.RenderTransform><RotateTransform x:Name"MyAnimatedTransform" Angle"…...

    深入解析Java日志框架Logback:从原理到最佳实践

    Logback作为Java领域最主流的日志框架之一&#xff0c;由Log4j创始人Ceki Glc设计开发&#xff0c;凭借其卓越的性能、灵活的配置以及与SLF4J的无缝集成&#xff0c;成为企业级应用开发的首选日志组件。本文将从架构设计、核心机制、配置优化等维度全面剖析Logback的技术细节。…...

    【设计模式——装饰器模式】

    在 Unity 游戏开发中&#xff0c;装饰模式是一种非常灵活的设计模式&#xff0c;用于在运行时动态地为对象添加功能。以下是装饰模式的设计思路和实现步骤&#xff0c;以角色的装备系统为例进行说明。 设计思路 装饰模式的核心思想是通过创建一个装饰器类来包装原有的对象&am…...

    在 macOS 上切换默认 Java 版本

    下载javasdk 打开android studio -> setting -> build.execution,dep -> build tools -> gradle -> Gradle JDK -> download JDK… 点击下载&#xff0c;就下载到了 ~/Library/Java/JavaVirtualMachines/ 安装 jenv brew install jenv将 jenv 集成到 Shell …...

    【Linux网络与网络编程】11.数据链路层mac帧协议ARP协议

    前面在介绍网络层时我们提出来过一个问题&#xff1a;主机是怎么把数据交给路由器的&#xff1f;那里我们说这是由数据链路层来做的。 网络上的报文在物理结构上是以mac帧的形式流动的&#xff0c;但在逻辑上是以IP流动的&#xff0c;IP的流动是需要mac帧支持的。 数据链路层解…...

    158页PPT | 某大型研发制造集团信息化IT规划整体方案

    该文档是某大型研发制造集团信息化IT规划整体方案&#xff0c;涵盖项目过程回顾、信息平台分析、现状评估、规划及治理建议和下阶段工作计划。项目旨在理解集团战略目标&#xff0c;评估信息化应用现状&#xff0c;制定可扩展的蓝图&#xff0c;明确未来3年管理与IT建设子项目&…...

    ON DUPLICATE KEY UPDATE 更底层解释它的优势

    从更底层来看&#xff0c;ON DUPLICATE KEY UPDATE 的优势主要源于以下几个方面&#xff1a; 1. 减少网络往返次数 先查询再更新&#xff1a;这种方式需要客户端和数据库服务器之间进行多次网络通信。首先&#xff0c;客户端发送一个 SELECT 查询请求&#xff0c;然后等待服务…...

    Python 赋能区块链金融——从零构建智能交易系统

    Python 赋能区块链金融——从零构建智能交易系统 引言:区块链金融系统的崛起 区块链技术正在颠覆传统金融体系,带来去中心化、透明化和高效的交易模式。从 DeFi(去中心化金融)到 NFT 市场,区块链金融系统已成为 Web 3.0 生态的重要支柱。如何用 Python 构建一个区块链金…...

    基础(测试用例设计方法:流程图法,等价类划分法,边界值分析法,判定表法,正交分析法,错误推测法,其他方法,案例)

    目录 流程图法&#xff08;场景法&#xff09; 业务流程 流程图 流程图法设计测试用例 案例-退款泳道图 案例-刷视频流程 等价类划分法 等价类 等价类设计测试用例 案例1-验证电话号码 案例2-验证邮箱格式 边界值分析法 测试数据的选取 边界值法设计测试用例 案例…...

    QT —— 信号和槽(槽函数)

    QT —— 信号和槽 信号和槽信号(Signal)槽(Slot)声明方式工作原理连接方式1. 传统连接方式(Qt4风格)2. 新式连接方式(Qt5风格) 区分槽函数和信号通过QtCreator生成信号槽代码自动生成槽函数显式连接的优势命名约定自动连接的局限性最佳实践建议结论 我们之前对QT&#xff0c;有…...

    ROS2模块库概览

    一、核心通信与基础库&#xff08;最常用&#xff09; 客户端库 rclcpp (ROS Client Library for C) 核心API&#xff1a;create_node(), create_publisher(), create_subscription()高级特性&#xff1a; 生命周期节点&#xff1a;通过rclcpp_lifecycle实现configure/activate…...

    HADOOP——序列化

    1.创建一个data目录在主目录下&#xff0c;并且在data目录下新建log.txt文件 2.新建flow软件包&#xff0c;在example软件包下 FlowBean package com.example.flow;import org.apache.hadoop.io.Writable;import java.io.DataInput; import java.io.DataOutput; import java.i…...

    第五章 5.2ESP32物联网应用:HTTP与Web服务器详细教学

    本文将详细讲解如何在ESP32上搭建Web服务器&#xff0c;通过HTTP协议实现远程控制LED灯。每行代码均有详细注释&#xff0c;适合零基础学习。 一、HTTP协议基础 HTTP是客户端&#xff08;浏览器&#xff09;和服务器之间的通信协议&#xff0c;常用请求方法&#xff1a; GET&a…...

    c++11 绑定器bind

    文章目录 std::bind 使用总结&#xff08;C11&#xff09;1. 绑定普通函数2. 使用占位符 _1, _2&#xff0c;调用时传参数3. 绑定类的成员函数&#xff08;类外&#xff09;4. 绑定类的成员函数&#xff08;类内&#xff09;5. 占位符结合成员函数小结 std::bind 使用总结&…...