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

MySQL存储引擎-存储结构

Innodb存储结构

在这里插入图片描述

  1. Buffer Pool(缓冲池):BP以Page页为单位,页默认大小16K,BP的底层采用链表数据结构管理Page。在InnoDB访问表记录和索引时会在Page页中缓存,以后使用可以减少磁盘IO操作,提升效率。
    ○ Page根据状态可以分为三种类型:
    ■ free page : 空闲page,未被使用。
    ■ clean page:被使用page,数据没有被修改过。
    ■ dirty page:脏页,被使用page,数据被修改过。
    ○ 针对上述三种page类型,InnoDB通过三种链表结构来维护和管理
    ■ free list :表示空闲缓冲区,管理free page
    ■ flush list:表示需要刷新到磁盘的缓冲区,管理dirty page,内部page按修改时间排序。脏页即存在于flush链表,也在LRU链表中,但是两种互不影响,LRU链表负责管理page的可用性和释放,而flush链表负责管理脏页的刷盘操作。
    ■ lru list:表示正在使用的缓冲区,管理clean page和dirty page,缓冲区以midpoint为基点,前面链表称为new列表区,存放经常访问的数据,占63%;后面的链表称为old列表区,存放使用较少数据,占37%。
    ○ 改进型LRU算法维护
    ■ 普通LRU:末尾淘汰法,新数据从链表头部加入,释放空间时从末尾淘汰
    ■ 改性LRU:链表分为new和old两个部分,加入元素时并不是从表头插入,而是从中间midpoint位置插入,如果数据很快被访问,那么page就会向new列表头部移动,如果数据没有被访问,会逐步向old尾部移动,等待淘汰。每当有新的page数据读取到buffer pool时,InnoDb引擎会判断是否有空闲页,是否足够,如果有就将free page从free list列表删除,放入到LRU列表中。没有空闲页,就会根据LRU算法淘汰LRU链表默认的页,将内存空间释放分配给新的页。(解决预度失效和Buffer Pool污染问题)
    Buffffer Pool配置参数 (8.0版本)
    show variables like ‘%innodb_page_size%’; //查看page页大小
    page_size 16384B/1024=16KB
    show variables like ‘%innodb_old%’; //查看lru list中old列表参数
    old

    1. innodb_old_blocks_pct:这个变量表示InnoDB缓冲池中被认为是“旧”的块的百分比。 InnoDB使用这个百分比来决定哪些块应该被认为是“旧”的,这些块可能适合被替换出缓冲池。默认值是37%,意味着如果一个块在缓冲池中存在的时间超过所有块的37%,它就被认为是旧的。这个值可以通过调整来优化缓冲池中数据的替换策略,以适应不同的工作负载。
    2. innodb_old_blocks_time:这个变量定义了一个块在被标记为“旧”之前必须在缓冲池中停留的最小时间(以毫秒为单位)。默认值是1000毫秒(1秒)。如果一个块在缓冲池中停留的时间少于这个值,即使它的使用频率很低,它也不会被标记为旧块。这个设置可以帮助控制哪些页应该被优先替换出缓冲池。

    show variables like ‘%innodb_buffer%’; //查看buffffer pool参数
    buffer

  2. Change Buffer(写缓冲区):在进行DML操作时,如果BP没有其相应的Page数据, 并不会立刻将磁盘页加载到缓冲池,而是在CB记录缓冲变更,等未来数据被读取时,再将数据合并恢复到BP中。 ChangeBuffffer占用BufferPool空间,默认占25%,最大允许占50%,可以根据读写业务量来进行调整。参数innodb_change_buffer_max_size; size
    当更新一条记录时,该记录在BufferPool存在,直接在BufferPool修改,一次内存操作。如果该记录在BufferPool不存在(没有命中),会直接在ChangeBuffer进行一次内存操作,不用再去磁盘查询数据,避免一次磁盘IO。当下次查询记录时,会先进性磁盘读取,然后再从 ChangeBuffer中读取信息合并,最终载入BufferPool中。
    写缓冲区,仅适用于非唯一普通索引页,为什么?
    如果在索引设置唯一性,在进行修改时,InnoDB必须要做唯一性校验,因此必须查询磁盘,做一次IO操作。会直接将记录查询到BufferPool中,然后在缓冲池修改,不会在ChangeBuffer操作。

  3. Adaptive Hash Index:自适应哈希索引,用于优化对BP数据的查询。InnoDB存储引擎会监控对表索引的查找,如果观察到建立哈希索引可以带来速度的提升,则建立哈希索引,所以称之为自适应。InnoDB存储引擎会自动根据访问的频率和模式来为某些页建立哈希索引。

  4. Log Buffer:日志缓冲区,用来保存要写入磁盘上log文件的数据,日志缓冲区的内容定期刷新到磁盘log文件中。日志缓冲区满时会自动将其刷新到磁盘,当遇到BLOB 或多行更新的大事务操作时,增加日志缓冲区可以节省磁盘I/O。 LogBuffer主要是用于记录InnoDB引擎日志,在DML操作时会产生Redo和Undo日志。 LogBuffer空间满了,会自动写入磁盘。可以通过将innodb_log_buffer_size参数调大,减少磁盘IO频率 。

InnoDB磁盘主要包含Tablespaces,InnoDB Data Dictionary,Doublewrite Buffffer、Redo Log
和Undo Logs。

  1. 表空间(Tablespaces):用于存储表结构和数据。表空间又分为系统表空间、独立表空间、 通用表空间、临时表空间、Undo表空间等多种类型;
    ○ 系统表空间(The System Tablespace)
    包含InnoDB数据字典,Doublewrite Buffer,Change Buffer,Undo Logs的存储区
    域。系统表空间也默认包含任何用户在系统表空间创建的表数据和索引数据。系统表空
    间是一个共享的表空间因为它是被多个表共享的。该空间的数据文件通过参数
    innodb_data_file_path控制。
    系统表空间
    ○ 独立表空间(File-Per-Table Tablespaces)
    默认开启,独立表空间是一个单表表空间,该表创建于自己的数据文件中,而非创建于
    系统表空间中。当innodb_file_per_table选项开启时,表将被创建于表空间中。否则,
    innodb将被创建于系统表空间中。每个表文件表空间由一个.ibd数据文件代表,该文件
    默认被创建于数据库目录中。表空间的表文件支持动态(dynamic)和压缩
    (commpressed)行格式。
    ○ 通用表空间(General Tablespaces)
    通用表空间为通过create tablespace语法创建的共享表空间。通用表空间可以创建于
    mysql数据目录外的其他表空间,其可以容纳多张表,且其支持所有的行格式。
    ○ 撤销表空间(Undo Tablespaces)
    撤销表空间由一个或多个包含Undo日志文件组成。在MySQL 5.7版本之前Undo占用的
    是System Tablespace共享区,从5.7开始将Undo从System Tablespace分离了出来。
    InnoDB使用的undo表空间由innodb_undo_tablespaces配置选项控制,默认为0。参
    数值为0表示使用系统表空间ibdata1;大于0表示使用undo表空间undo_001、
    undo_002等。
    ○ 临时表空间(Temporary Tablespaces)
    临时表空间分为session temporary tablespaces 和global temporary tablespace两种。session
    temporary tablespaces 存储的是用户创建的临时表和磁盘内部的临时表。global
    temporary tablespace储存用户临时表的回滚段(rollback segments )。mysql服务
    器正常关闭或异常终止时,临时表空间将被移除,每次启动时会被重新创建。
  2. 数据字典(InnoDB Data Dictionary)
    InnoDB数据字典由内部系统表组成,这些表包含用于查找表、索引和表字段等对象的元数
    据。元数据物理上位于InnoDB系统表空间中。由于历史原因,数据字典元数据在一定程度上
    与InnoDB表元数据文件(.frm文件)中存储的信息重叠。
  3. 双写缓冲区(Doublewrite Buffer)
    位于系统表空间,是一个存储区域。在BufferPool的page页刷新到磁盘真正的位置前,会先
    将数据存在Doublewrite 缓冲区。如果在page页写入过程中出现操作系统、存储子系统或
    mysqld进程崩溃,InnoDB可以在崩溃恢复期间从Doublewrite 缓冲区中找到页面的一个好
    备份。在大多数情况下,默认情况下启用双写缓冲区,要禁用Doublewrite 缓冲区,可以将
    innodb_doublewrite设置为0。

    使用Doublewrite 缓冲区时建议将innodb_flush_method设 置为O_DIRECT。
    在这里插入图片描述
    MySQL的innodb_flush_method这个参数控制着innodb数据文件及redo log的打开、 刷写模式。有三个值:fsync(默认),O_DSYNC,O_DIRECT。设置O_DIRECT表示数据文件写入操作会通知操作系。不要缓存数据,也不要用预读,直接从Innodb Buffer写到磁盘文件。 默认的fsync意思是先写入操作系统缓存,然后再调用fsync()函数去异步刷数据文件与redo log的缓存信息。
  4. 重做日志(Redo Log)
    重做日志是一种基于磁盘的数据结构,用于在崩溃恢复期间更正不完整事务写入的数据。
    MySQL以循环方式写入重做日志文件,记录InnoDB中所有对Buffer Pool修改的日志。当出
    现实例故障(像断电),导致数据未能更新到数据文件,则数据库重启时须redo,重新把数
    据更新到数据文件。读写事务在执行的过程中,都会不断的产生redo log。默认情况下,重
    做日志在磁盘上由两个名为ib_logfifile0和ib_logfifile1的文件物理表示。
  5. 撤销日志(Undo Logs)
    撤消日志是在事务开始之前保存的被修改数据的备份,用于例外情况时回滚事务。撤消日志
    属于逻辑日志,根据每行记录进行记录。撤消日志存在于系统表空间、撤消表空间和临时表
    空间中。

MySQL 8.0 版本 的存储引擎

在这里插入图片描述
● 将InnoDB表的数据字典,双写缓冲区和Undo都从共享表空间ibdata中彻底分离出来了,以前需要ibdata中数据字典与独立表空间ibd文件中数据字典一致才行,8.0版本就不需要了。
● temporary 临时表空间也可以配置多个物理文件,而且均为 InnoDB 存储引擎并能创建索引,这样加快了处理的速度。
● 用户可以像 Oracle 数据库那样设置一些表空间,每个表空间对应多个物理文件,每个表空间可以给多个表使用,但一个表只能存储在一个表空间中。

相关文章:

MySQL存储引擎-存储结构

Innodb存储结构 Buffer Pool(缓冲池):BP以Page页为单位,页默认大小16K,BP的底层采用链表数据结构管理Page。在InnoDB访问表记录和索引时会在Page页中缓存,以后使用可以减少磁盘IO操作,提升效率。 ○ Page根据状态可以分…...

数据资产入表 解锁智慧城市新潜力

在21世纪的科技浪潮中,智慧城市以信息技术为核心,以数据为血液,通过智能化、精细化的管理,让城市变得更加智慧、更加宜居。而数据资产入表,正是这一变革中的关键一环,它不仅推动了科技的进步,更…...

按类别调整目标检测标注框的写入顺序以优化人工审核效率

引言 在目标检测数据标注审核过程中,我们常常会遇到以下情况:某些小目标的检测框嵌套在大目标检测框内,而在模型进行预标注后,这些小目标的框可能被写入到了大目标框的下层。在人工审核阶段,标注审核人员需要手动移动…...

深入理解YOLO系列目标检测头的设定方式

目录 YOLOv1的检测头结构 1. 网络结构概述 2. 结构细节 3. 优缺点 YOLOv2的检测头结构 1. 网络结构概述 2. 结构细节 3. 优缺点 YOLOv3的检测头结构 1. 网络结构概述 2. 结构细节 3. 优缺点 总结:YOLO 系列检测头的结构演变 YOLOv1的检测头结构 1. 网络…...

智慧农业物联网解决方案:道品科技水肥一体化

在当今科技飞速发展的时代,农业也迎来了一场深刻的变革。智慧农业物联网解决方案中的水肥一体化技术,正逐渐成为现代农业发展的重要助推器。它不仅提高了农业生产效率,还实现了精准施肥和灌溉,为农业可持续发展带来了新的机遇。 …...

单片机上电后程序不运行怎么排查问题?

1.电源检查。使用电压表测量单片机的电源电压是否正常,确保电压在规定的范围内,如常见的5V。 2.复位检查。检查复位引脚的电压是否正常,在单片机接通电源时,复位引脚通常会有一个高电平,按下复位按钮时,复位…...

OceanBase 数据库分布式与集中式 能力

OceanBase分布式数据库与集中式数据库的差异 分布式数据库能解决金融行业最有挑战的高并发低延迟的核心交易系统的稳定性、扩展性、高性能问题。OB之所以一直强调分布式是说它具备很强的数据处理能力,当然从OB4.0开始也支持集中式了。 在实际业务场景中20%是分布式…...

C#多线程

C#中的多线程编程是开发高效并发应用程序的关键技术之一,它允许程序同时执行多个任务,从而提升应用程序的响应速度和性能。为了更好地理解C#中的多线程使用和定义,我们可以从以下几个方面来探讨:线程的基本概念、创建线程的方法、…...

Apache HTTP 服务器深度性能优化

引言 在前几篇文章中,我们讨论了基础和高级性能优化策略。现在,我们将深入探讨一些具体的优化实践,帮助您实现更精细的控制,并确保Apache服务器在各种复杂环境中都能保持最佳性能。 1. 细粒度的Apache配置调整 1.1 MPM参数微调…...

芯片级IO (Pad) Ring IP Checklist

SoC top顶层数字后端实现都会涉及到IO Ring (PAD Ring)的设计。这里面包括VDD IO,VDDIO IO, Signal IO, Corner IO,Filler IO,IO power cut cell等等。 数字后端零基础入门系列 | Innovus零基础LAB学习Day2 数字IC后端实现TOP F…...

无界wujie网址

文档网址:微前端是什么 | 无界 demo:https://wujie-micro.github.io/demo-main-vue/react17...

vulnhub靶场【DriftingBlues】之6

前言 靶机:DriftingBlues-6,IP地址192.168.1.63,因为重装靶机后期为192.168.1.64 攻击:kali,IP地址192.168.1.16 都采用虚拟机,网卡为桥接模式 主机发现 使用arp-scan -l或netdiscover -r 192.168.1.1…...

心情追忆- Nginx + OpenResty 构建高可用网关

之前,我独自一人开发了一个名为“心情追忆”的小程序,旨在帮助用户记录日常的心情变化及重要时刻。我从项目的构思、设计、前端(小程序)开发、后端搭建到最终部署。经过一个月的努力,通过群聊分享等方式,用…...

太速科技-527-基于3U VPX XCZU15EG+TMS320C6678的信号处理板

基于3U VPX XCZU15EGTMS320C6678的信号处理板 一、板卡概述 本板卡系我司自主研发的基于3U VPX风冷、导冷架构的信号处理板,适用于高速图像处理等。芯片采用工业级设计。 板卡采用标准3U VPX架构,板上集成一片Xilinx公司ZynqUltraScale系列F…...

Vue3源码笔记阅读1——Ref响应式原理

本专栏主要用于记录自己的阅读源码的过程,希望能够加深自己学习印象,也欢迎读者可以帮忙完善。接下来每一篇都会从定义、运用两个层面来进行解析 定义 运用 例子:模板中访问ref(1) <template><div>{{str}}</div> </template> <script> impo…...

多音轨视频使用FFmpeg删除不要音轨方法

近期给孩子找宫崎骏动画&#xff0c;但是有很多是多音轨视频但是默认的都是日语&#xff0c;电视上看没办法所以只能下载后删除音轨文件只保留中文。 方法分两步&#xff0c;先安装FFmpeg在转文件即可。 第一步FFmpeg安装 FFmpeg是一个开源项目&#xff0c;包含了处理视频的…...

AtomGit 开源生态应用开发赛报名开始啦

目录 1、赛项背景2、赛项信息3、报名链接4、赛题一&#xff1a;开发者原创声明&#xff08;DCO&#xff09;应用开发赛题要求目标核心功能 5、赛题二&#xff1a;基于 OpenHarmony 的开源社区应用开发简介赛题要求 6、参赛作品提交初赛阶段决赛阶段 7、参赛作品提交方式 1、赛项…...

使用 NVIDIA DALI 计算视频的光流

引言 光流&#xff08;Optical Flow&#xff09;是计算机视觉中的一种技术&#xff0c;主要用于估计视频中连续帧之间的运动信息。它通过分析像素在时间维度上的移动来预测运动场&#xff0c;广泛应用于目标跟踪、动作识别、视频稳定等领域。 光流的计算传统上依赖 CPU 或 GP…...

C语言学习day23:WriteProcessMemory函数/游戏内存数据修改工具开发

简言&#xff1a; 上一章我们说了获取应用进程的某数据&#xff08;data&#xff09;&#xff0c;这一章我们就说说修改内存地址的数据。想要修改内存&#xff0c;那么就需要我们另一个WinAPI函数&#xff1a;WriteProcessMemory()函数。 WriteProcessMemory()函数 函数原型…...

利用 html_table 函数轻松获取网页中的表格数据

背景/引言 在数据爬取的过程中&#xff0c;网页表格数据往往是研究人员和开发者的重要目标之一。无论是统计分析、商业调研还是信息整理&#xff0c;表格数据的结构化特性都使其具有较高的利用价值。然而&#xff0c;如何快速、准确地从网页中提取表格数据始终是爬虫技术的一个…...

Postman接口测试:全局变量/接口关联/加密/解密

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 全局变量和环境变量 全局变量&#xff1a;在postman全局生效的变量&#xff0c;全局唯一 环境变量&#xff1a;在特定环境下生效的变量&#xff0c;本环境内唯一 …...

手机银行模拟器,一款高仿真银行app的模拟器,可以修改姓名 卡号 余额 做转账记录 做流水

&#x1f4f1;手机银行模拟器让你自由定制你的金融生活。无论是流水账单、金额&#xff0c;还是个人信息&#xff0c;一切都可以按照你的意愿来模拟修改&#xff0c;让你体验模拟器带来的快乐&#xff01; 链接&#xff1a;https://pan.quark.cn/s/c2f614f3447f 提取码&#…...

HT7183:16V, 4.5A的DC-DC升压转换器,常用在数码相机里

HT7183描述&#xff1a; HT7183是一款高功率异步升压转换器&#xff0c;集成120mΩ功率开关管&#xff0c;为便携式系统提供高效的小尺寸解决方案。具有2.6V至5.5V输入电压范围&#xff0c;可为各类不同供电的应用提供支持。该器件具备3A开关电流能力&#xff0c;并且能够提供高…...

Cobalt Strike 4.8 用户指南-第十四节 Aggressor 脚本

14.1、什么是Aggressor脚本 Aggressor Script 是Cobalt Strike 3.0版及更高版本中内置的脚本语言。Aggressor 脚本允许你修改和扩展 Cobalt Strike 客户端。 历史 Aggressor Script 是 Armitage 中开源脚本引擎Cortana的精神继承者。Cortana 是通过与 DARPA 的网络快速跟踪计…...

【Qt】QWidget中的常见属性及其功能(二)

目录 六、windowOpacity 例子&#xff1a; 七、cursor 例子&#xff1a; 八、font 九、toolTip 例子&#xff1a; 十、focusPolicy 例子&#xff1a; 十一、styleSheet 计算机中的颜色表示 例子&#xff1a; 六、windowOpacity opacity是不透明度的意思。 用于设…...

对象的克隆 单例模式

1) 如何实现对象的克隆&#xff1f; 1、为什么需要实现对象的克隆&#xff1f; 在某些情况下&#xff0c;需要创建一个与现有对象完全相同的副本&#xff0c;这就是对象克隆。 例如&#xff0c;在需要对对象进行备份、在不同的上下文中使用相同的类型的对象或者实现某些设计…...

预处理内容

预处理是干什么的呢&#xff1f; 分为三点&#xff1a; 1.宏替换 2.头文件导入 3.删除注释 #ifdef #include <iostream> // 定义一个宏&#xff0c;表示当前处于调试模式&#xff0c;在实际调试时可以定义这个宏&#xff0c;发布时取消定义#define DEBUG MODE int ma…...

Docker笔记

1 安装docker b11et3un53m.feishu.cn/wiki/Rfocw7ctXij2RBkShcucLZbrn2d 项目的资料地址(飞书) 当使用docker pull +名字 拉取镜像时报 Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for co…...

条件随机场(CRF)详解:原理、算法与实现(深入浅出)

目录 1. 引言2. 什么是条件随机场&#xff1f;2.1 直观理解2.2 形式化定义 3. CRF的核心要素3.1 特征函数3.2 参数学习 4. 实战案例&#xff1a;命名实体识别5. CRF vs HMM6. CRF的优化与改进6.1 特征选择6.2 正则化 7. 总结与展望参考资料 1. 引言 条件随机场(Conditional Ra…...

C++类与对象学习笔记(一)

https://www.bilibili.com/video/BV1jm4y1w7pa?spm_id_from333.788.player.switch&vd_sourcee8984989cddeb3ef7b7e9fd89098dbe8&p6 &#x1f6a9;​&#x1f6a9;&#x1f6a9;来自b站“码农论坛”的视频“类与对象”做的笔记&#x1f6a9;​&#x1f6a9;&#x1f6a…...

wrk如何测试post请求

wrk git地址 https://github.com/wg/wrk wrk 默认是针对 GET 请求的&#xff0c;但它也可以通过添加自定义的 HTTP 请求体和 头部信息来进行 POST 请求的压测。以下是详细的步骤&#xff1a; wrk -t4 -c100 -d30s -s post.lua http://example.com-t4&#xff1a;使用 4 个线…...

rust使用log与env_logger两个crate实现同时向控制台和文件输出日志。并在隔日自动创建新日志文件。

还是老习惯,不用太多的废话。直接上代码。 不过我之说一句话,这块需要自定义一个输出的Target来实现这个功能。 log = { version="0.4.22", default-features = false } env_logger = "0.11.5"pub(crate) fn setup_log_env(log_level: LevelFilter) {...

异步将用户信息存入 Redis 缓存

主要是为了解决Redis的缓存问题&#xff0c;异步将用户信息存入Redis缓存 首先我们需要引入一部线性池 核心概念 异步执行&#xff1a; 异步执行是指任务提交后不会立即等待其完成&#xff0c;而是立即返回并继续执行其他任务。任务将在后台执行&#xff0c;执行结果可以通过…...

WebRTC服务质量(05)- 重传机制(02) NACK判断丢包

WebRTC服务质量&#xff08;01&#xff09;- Qos概述 WebRTC服务质量&#xff08;02&#xff09;- RTP协议 WebRTC服务质量&#xff08;03&#xff09;- RTCP协议 WebRTC服务质量&#xff08;04&#xff09;- 重传机制&#xff08;01) RTX NACK概述 WebRTC服务质量&#xff08;…...

MySQL 存储过程与函数:增强数据库功能

一、MySQL 存储过程与函数概述 &#xff08;一&#xff09;存储过程的定义与特点 存储过程是一组预编译的 SQL 语句集合&#xff0c;它们被存储在数据库中&#xff0c;可根据需要被重复调用。例如&#xff0c;在一个电商系统中&#xff0c;经常需要查询某个时间段内的订单数据…...

丹摩|丹摩助力selenium实现大麦网抢票

丹摩&#xff5c;丹摩助力selenium实现大麦网抢票 声明&#xff1a;非广告&#xff0c;为用户体验 1.引言 在人工智能飞速发展的今天&#xff0c;丹摩智算平台&#xff08;DAMODEL&#xff09;以其卓越的AI算力服务脱颖而出&#xff0c;为开发者提供了一个简化AI开发流程的强…...

springcloud-gateway获取应用响应信息乱码

客户端通过springcloud gateway跳转访问tongweb上的应用&#xff0c;接口响应信息乱码。使用postman直接访问tongweb上的应用&#xff0c;响应信息显示正常。 用户gateway中自定义了实现GlobalFilter的Filter类&#xff0c;在该类中获取了上游应用接口的响应信息&#xff0c;直…...

Scala项目(一)

1&#xff0c;创建dao&#xff0c;models&#xff0c;service&#xff0c;ui等软件包 2&#xff0c;在各软件包下创建scala类 软件包dao里的代码 package org.app package daoimport models.BookModelimport scala.collection.mutable.ListBuffer//图书&#xff0c;数据操作…...

node(2) - npm run 原理

1. npm run 执行原理 npm run 命令的原理是执行 package.json 文件中定义的脚本。当你在命令行中运行 npm run 时,npm 会查找 package.json 文件中的 scripts 字段,然后执行对应的脚本命令。 2. 示例 2.1 以 dev:weapp 为例 运行 npm run dev:weapp 命令;npm 会查找 packa…...

概率论得学习和整理24:EXCEL的各种图形,统计图形

目录 0 EXCEL的各种图形&#xff0c;统计图形 1 统计图形 / 直方图 / 其实叫 频度图 hist最合适(用原始数据直接作图) 1.1 什么是频度图 1.2 如何创建频度图&#xff0c;一般是只选中1列数据&#xff08;1个数组&#xff09; 1.3 如何修改频度图的宽度 1.4 hist图的一个特…...

【zlm】 webrtc源码讲解三(总结)

目录 setsdp onwrite ​编辑 play 参考 setsdp onwrite play 参考 【zlm】 webrtc源码讲解_zlm webrtc-CSDN博客 【zlm】 webrtc源码讲解&#xff08;二&#xff09;_webrtc 源码-CSDN博客...

YashanDB共享集群产品能力观测:细节足见功底

本文基于前泽塔数科研发总监-王若楠2024年11月在“2024年国产数据库创新生态大会”-“根”技术专场的演讲整理形成&#xff0c;主要对崖山共享集群YAC的架构、功能、高可用性、性能四大方面进行全面测试&#xff0c;并分享了测试环境和测试结论。 年初&#xff0c;基于某些商业…...

游戏引擎学习第50天

仓库: https://gitee.com/mrxiao_com/2d_game Minkowski 这个算法有点懵逼 回顾 基本上&#xff0c;现在我们所处的阶段是&#xff0c;回顾最初的代码&#xff0c;我们正在讨论我们希望在引擎中实现的所有功能。我们正在做的版本是初步的、粗略的版本&#xff0c;涵盖我们认…...

前端部署实战:从人工发布到全自动化流程

"又发错环境了&#xff01;"周四下午,测试同学小李急匆匆地找到我。原来是开发人员手动部署时,不小心把测试代码发布到了生产环境。这已经是本月第二次类似的事故了。 回想起每次发布时的场景&#xff1a;手动打包、手动上传、手动替换文件...每一步都战战兢兢,生怕…...

JVM系列之内存区域

每日禅语 有一位年轻和尚&#xff0c;一心求道&#xff0c;多年苦修参禅&#xff0c;但一直没有开悟。有一天&#xff0c;他打听到深山中有一古寺&#xff0c;住持和尚修炼圆通&#xff0c;是得道高僧。于是&#xff0c;年轻和尚打点行装&#xff0c;跋山涉水&#xff0c;千辛万…...

如何用3个月零基础入门网络安全?_网络安全零基础怎么学习

&#x1f91f; 基于入门网络安全/黑客打造的&#xff1a;&#x1f449;黑客&网络安全入门&进阶学习资源包 前 言 写这篇教程的初衷是很多朋友都想了解如何入门/转行网络安全&#xff0c;实现自己的“黑客梦”。文章的宗旨是&#xff1a; 1.指出一些自学的误区 2.提供…...

易语言OCR证件照文字识别

一.引言 文字识别&#xff0c;也称为光学字符识别&#xff08;Optical Character Recognition, OCR&#xff09;&#xff0c;是一种将不同形式的文档&#xff08;如扫描的纸质文档、PDF文件或数字相机拍摄的图片&#xff09;中的文字转换成可编辑和可搜索的数据的技术。随着技…...

【人工智能】基于Python的自然语言处理:深入实现文本相似度计算

解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 文本相似度计算是自然语言处理(NLP)中的核心任务,广泛应用于搜索引擎、推荐系统、问答系统等领域。本文全面解析文本相似度计算的核心技术,使用Python中的spaCy和sentence-transformers库实现多种方法,包括基…...

基于wifi的火焰报警系统设计(论文+源码)

1 总体方案设计 在本次基于wifi模板的火焰报警系统中&#xff0c;整个系统架构如图2.1所示&#xff0c;其采用STM32F103单片机作为控制器&#xff0c;并结合DS18B20温度传感器,火焰传感器&#xff0c;ESP8266 WiFi通信模块&#xff0c;蜂鸣器,OLED液晶构成整个系统&#xff0c;…...

【第三节】Git 基本操作指南

目录 前言 一、获取与创建项目 1.1 git init 1.2 git clone 二、基本快照操作 2.1 git add 2.2 git status 2.3 git diff 2.4 git commit 2.5 git reset HEAD 三、 文件管理 3.1 git rm 3.2 git mv 四、Git 文件状态 5.1 工作目录 5.2 暂存区 5.3 本地仓库 5…...