- 博客(56)
- 收藏
- 关注
原创 MySQL(视图,存储过程)
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,数据库中只存放了视图的定义,而并没有存放视图中的数据,这些数据存放在原来的表中。使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。因此,视图中的数据是依赖于原来的表中的数据的。一旦表中的数据发生改变,显示在视图中的数据也会发生改变。同样对视图的更新,会影响到原来表的数据。
2025-07-01 10:08:47
314
原创 SQL优化(插入、主键、order by、group by)
在插入50的时候,50应该在47之后,但是页空间不足,此时innoDB会创建一个空的页,然后把前一页50%之后的数据移动到新创建的页,然后再插入50这条记录,最后调整指针的指向。插入结束后:因此我们在插入数据时顺序插入就不会产生页分裂,性能也就比较高。
2025-06-30 14:18:28
154
原创 MySQL 索引和select优化
索引(index)是帮助MySQL高效获取数据的有序数据结构,这些数据结构以某种方式指向数据,这样就可以在这种数据结构之上实现高级查找,而不是全表扫描。MySQL中选择的数据结构是 B+ 树。innoDB的逻辑存储结构表空间 -- 段 -- 区 -- 页 --- 行,innoDB的最小操作单元是页。一个区固定大小1M,页固定大小16K,所以一个区有64个页。
2025-06-18 21:26:19
298
原创 MySQL 多表查询、事务
事务是一组操作的集合,这组操作必须全部成功或者全部失败。比如银行转账的步骤:A账户扣钱,B账户加钱 这两步操作必须全部成功或者失败,不能单独某一步成功或失败。
2025-06-18 20:15:33
898
原创 Python 装饰器
装饰器就是给现有的函数添加功能,并且不改变它原有的调用方式,本质上就是一个高阶函数(参数是函数名并且返回函数名),在python中,万物皆对象,函数名也是一个对象可以被作为参数传递,这和C语言中的回调函数很相似。
2025-06-17 23:05:43
768
原创 Selenium(多窗口,frame,验证码,截图,PO模式)
使用frame框架可以达到一个页面包含多个窗口,可以理解为网页的嵌套,比如在A网页中设置一块区域用来显示B网页的内容。在不进行处理的前提下不能操作B网页的内容。
2025-06-16 23:02:23
417
原创 Selenium(选择元素,浏览器/元素操作,等待,页面交互)
我们知道,代码的执行速度是很快的,如果用户的网络较慢或者页面上的元素是异步加载的导致我们查找元素时该元素还未被加载到页面中,这时候就需要等待,延时一段时间等待元素加载完成。driver.implicitly_wait(timeout),设置完成后对全局有效,如果第一次查找元素未找到就会等待timeout秒后再去查找,如果还未找到则会报错。方法一:直接使用元素的click()方法达到选中对应选项的效果。(),它的返回值是一个列表,元素出现的先后顺序对应返回值的下标。建议使用CSS选择器,因为它的效率最高。
2025-06-16 15:55:07
950
原创 JMeter 性能测试
作用:阻塞线程使同时达到n个线程之后再发出请求,模拟高并发的场景。路径:右键请求--添加--定时器--Synchronizing Timer。
2025-06-01 22:08:06
426
原创 JMeter 直连数据库
1.1 参数化,例如登录使用的账户名密码都可以从数据库中取得1.2 断言,查看实际结果和数据库中的预期结果是否一致1.3 清理垃圾数据,例如插入一个用户,它的ID不能相同,在测试插入功能后将数据删除。1.4 准备测试数据。
2025-06-01 20:11:26
351
原创 Jmeter 接口测试
路径:添加--前置处理器--用户参数添加后通过${参数名}使用同时这种方法也可以实现多个用户使用不同的值,具体方法是设置线程的用户数为n,然后在添加用户变量的时候添加n个用户并且输入值,使用的方法不变。
2025-05-31 13:22:16
546
原创 Jenkins 2.479.1安装和邮箱配置教程
在JDK安装并设置环境变量完成后,下载官网对应的war版本,在对应目录下打开命令行窗口并输入其余参数感兴趣可以自行查阅,这里启动的 jenkins 服务默认占用8080端口,在浏览器输入localhost:8080进入jenkins。登录和注册掠过。
2025-05-30 10:47:22
985
原创 JSON Schema
JSON Schema 是用于验证 JSON 数据结构的强大工具,Schema可以理解为模式或者规则,可以理解为JSON中的正则表达式。
2025-05-29 12:45:00
526
原创 Python requests
Python requests 是一个常用的 HTTP 请求库,可以方便地向网站发送 HTTP 请求,并获取响应结果。
2025-05-27 22:28:31
940
原创 Postman基础操作
将测试数据组织到数据文件中,通过脚本反复迭代执行,使用不同的数据,达到测试不同用例的目标。和unittest的 parameterized 类似。
2025-05-26 15:34:46
1187
原创 Python unittest
unittest是Python自带的一个单元测试框架, 它可以做单元测试, 也能用于编写和运行重复的测试工作。它给自动化测试用例开发和执行提供了丰富的断言方法, 判断测试用例是否通过, 并最终生成测试结果.
2025-05-22 22:26:01
406
原创 ADB基本操作和命令
adb 命令是 Android 官方提供,调试 Android 系统的工具。adb 全称为 Android Debug Bridge(Android 调试桥),是 Android SDK 中提供的用于管理 Android 模拟器或真机的工具。adb 是一种功能强大的命令行工具,可让 PC 端与 Android 设备进行通信。adb 命令可执行各种设备操作,例如安装和调试应用,并提供对 Unix shell 的访问权限。
2025-05-18 18:20:29
1032
原创 Linux基础(查找/打包/压缩文件)
find [路径] [匹配条件] 文件名,例如:find / -name 1.txt会遍历指定路径下的全部节点,可以同时指定多个路径,用空格分隔。匹配条件:-name :文件名匹配-type :按类型匹配,可以是 f 普通文件, d 目录,l 链接文件。
2025-05-11 15:05:16
672
原创 Linux基础(文件权限和用户管理)
文件的权限总共有三种:r(可读),w(可写),x(可执行),其中r是read,w是write,x是execute的缩写。我们可以通过ls -l 查看文件对应的权限,其中第一个字母分为-,d,l-:表示普通文件,即不是文件夹的文件d:directory的缩写,代表文件夹l:link的缩写,代表链接文件。后面跟着9个[rwx-],其中三个为一组,分别表示拥有者权限,组权限,其他用户权限。
2025-05-10 19:37:14
337
原创 Linux基础(关于进程相关命令)
查看所有的系统进程我们一般配合 | grep 使用,比如 ps -aux | grep bin 就是查看所有bin的进程信息。
2025-05-09 19:30:13
261
原创 STM32_看门狗WDG
大概意思就是给看门狗设置一个时间范围,在这个范围内必须喂狗(重置定时器),这个操作必须一直执行,比如看门狗的的时间范围是1-2秒,我们就必须间隔1-2秒就喂一次狗,否则它自减到0时就会重置电路,相当于按下reset键。
2025-04-29 20:58:23
942
原创 STM32_PWR电源控制
整个1.8V供电区域被断电,PLL、HSI和HSE也被断电,SRAM和寄存器内容丢失,只有备份的寄存器和待机电路维持供电。WFI指令进入睡眠模式,可被任意一个NVIC响应的中断唤醒WFE指令进入睡眠模式,可被唤醒事件唤醒。执行完WFI/WFE指令后,STM32进入睡眠模式,程序暂停运行,唤醒后程序从暂停的地方继续运行。执行完WFI/WFE指令后,STM32进入停止模式,程序暂停运行,唤醒后程序从暂停的地方继续运行。执行完WFI/WFE指令后,STM32进入待机模式,唤醒后程序从头开始运行。
2025-04-28 21:27:50
239
原创 STM32_SPI
W25Oxx系列是一种低成本、小型化、使用简单的非易失性存储器常应用于数据存储、字库存储、固件程序存储等场景存储介质:NorFlash(闪存)时钟频率:180MHz/160MHz(DualSP)/320MHz(Ouad SPl)Dual是双重SPI,是指发送的时候同时用MOSI和MISO同时进行发送,减少资源浪费。Quad是四重SPI,是在双重的基础上再加上HOLD和WP两条数据线进行传输。
2025-04-26 17:33:03
1061
原创 STM32_I2C
SCL低电平期间,从机将数据的一位放到SDA上,然后将SCL拉高,主机将在SCL高电平的时候读取数据,如此重复八次主机即可接收一个字节,需要注意的是:主机在接收之前需要释放SDA,对应的代码则是:I2C_SDA = 1;SCL低电平期间,主机将数据的第一位(由高到底)放到SDA上,然后拉高SCL,从机将在SCL高电平期间读取数据,如此重复八次即可完成一个字节的发送。SCL高电平期间,主机将发送的应答放在SDA上,然后拉高SCL,完成发送。SCL只能由主机控制,任何时候从机都不能拉低SCL,只能读取。
2025-04-24 20:50:57
465
原创 STM32_串口通信
串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大地扩展了单片机的应用范围,增强了单片机系统的硬件实力。
2025-04-22 17:13:37
1070
原创 C_可变参数列表
由此可以得出:实参10,20,30对应的形参在函数Myprintf中是按照地址从低到高存储的,也就是说,只要知道他们的类型,就能通过最后一个固定参数(这里指的是a)依次访问,那怎么判断是否访问了所有的形参呢?答案是通过固定参数传递可变参数的个数,然后再通过循环将指针向后移动不断访问数据。是最后一个固定参数的名称(这里是a)。是下一个参数的类型。指向可变参数列表中的第一个参数。:获取可变参数列表中的下一个参数。:结束可变参数列表的访问。:初始化可变参数列表。
2025-04-22 16:28:40
487
原创 STM32_DMA
DMA(Direct Memory Access)直接存储器存取DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输,无须CPU干预,节省了CPU的资源12个独立可配置的通道:DMA1(7个通道) DMA2(5个通道)每个通道都支持软件触发和特定的硬件触发。
2025-04-21 16:07:10
398
原创 STM32_ADC
ADC(Analog-Digital Converter)模拟-数字转换器,简称模数转换器或AD转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁。12位逐次逼近型ADC,1us转换时间输入电压范围:0~3.3V,转换结果范围:0~409518个输入通道,可测量16个外部和2个内部信号源规则组和注入组两个转换单元模拟看门狗自动监测输入电压范围STM32F103C8T6 ADC资源:ADC1、ADC2,10个外部输入通道。
2025-04-20 12:36:16
548
原创 STM21_旋转编码器计数
Encoder Interface 编码器接口编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而指示编码器的位置、旋转方向和旋转速度每个高级定时器和通用定时器都拥有1个编码器接口两个输入引脚借用了输入捕获的通道1和通道2。
2025-04-19 16:21:33
231
原创 STM32_Timer
TIM(Timer)定时器定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型。
2025-04-15 13:12:34
203
原创 STM32_中断
NVIC的作用是对中断进行管理,中断优先级又分为响应优先级和抢占优先级,响应优先级高的可以插队,抢占优先级高的可以嵌套中断,他们通过优先级寄存器的四位(0-15)决定,这四位可以划分成高n位的抢占优先级和低4-n位的响应优先级。如果两个中断 优先级和抢占优先级都相同,则按中断号排队。
2025-04-12 15:35:16
254
空空如也
c++只有拷贝构造函数怎么创建对象
2023-03-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人