自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 收藏
  • 关注

原创 【SQL】主从复制

如何提升数据库并发能力:在实际工作中,我们常常将与MySQL配合来使用,当有请求时,会首先从缓存中进行查找,如果存在就直接取出。不存在再访问数据库,这样就提升了读取效率,减少后端数据库的访问压力。redis的缓存架构是高并发架构中非常重要的一环。此外,一般应用对数据库而言都是“”,也就说对数据库读取数据的压力比较大,有一个思路就是采用数据库集群的方案,做主从架构、进行读写分离,这样同样可以提升数据库的并发处理能力。但并不是所有的应用都需要对数据库进行主从架构的设置,毕竟设置架构本身是有成本的。

2022-12-12 11:59:10 1421 1

原创 【SQL】MySQL支持的日志

除二进制日志外,其他日志都是文本文件。默认情况下,所有日志创建于MySQL数据目录中。查看日志当前状态,是否开启,文件位置:查看日志:从SHOW VARIABLES LIKE ‘general_log%’; 结果中可以看到通用查询日志的位置。找到并打开,在通用查询日志里面,我们可以清楚地看到,什么时候开启了新的客户端登陆数据库,登录之后做了什么 SQL 操作,针对的是哪个数据表等信息。关闭日志:SET GLOBAL general_log=off;删除日志:如果数据的使用非常频繁,那么通用查询日志会占

2022-12-07 16:51:23 658

原创 【SQL】MVCC 多版本并发控制

不加锁的简单select读都是快照读,读的是历史数据。需要加锁的场景,读取的是记录的最新版本,加锁的select、对数据进行增删改都会进行当前读。事务有四个隔离级别,可能存在三种并发问题:MySQL中默认的隔离级别为可重复读,它实际上解决了脏读、不可重复读和幻读,但并不是串行化。trx_id :每次一个事务对某条聚簇索引记录进行改动时,都会把该事务的事务id赋值给trx_id 隐藏列。roll_pointer :每次对某条聚簇索引记录进行改动时,都会把旧的版本写入到undo日志中,然后这个隐藏列就相

2022-12-07 11:38:17 964

原创 【SQL】锁机制

锁的不同角度分类从数据操作的类型划分:读锁,写锁读锁:也称为共享锁、英文用S 表示。针对同一份数据,多个事务的读操作可以同时进行而不会互相影响,相互不阻塞的。写锁:也称为排他锁、英文用X 表示。当前写操作没有完成前,它会阻断其他写锁和读锁。这样就能确保在给定的时间里,只有一个事务能执行写入,并防止其他用户读取正在写入的同一资源。读时可以加共享锁也可以加排他锁;写时只能加排他锁;开启共享锁S:开启排他锁X:S锁与S锁相互兼容S锁与X锁不兼容X锁与X锁不兼容可以很好的避免死锁。innodb支持

2022-12-05 13:29:35 964

原创 【SQL】redo log | undo log

事务提交后,刚写完缓冲池,数据库宕机了,那么这段数据就是丢失的,无法恢复。bin log用于主从复制,保持数据的一致性,主机写入一条记录,并写入bin log日志,从机再从bin log日志中复制过来。在对表进行插入的过程中,redo log不断进行顺序记录,而bin log不会记录,直到这个事务提交,才一次性写入bin log文件中。redo log是物理日志,记录的是数据页的物理变化,undo log不是redo log的逆过程。,提供再写入操作,恢复提交事务修改的页操作,用来保证事务的持久性。

2022-12-02 15:42:47 462

原创 【SQL】数据库事务

innodb默认支持事务事务是一组逻辑操作单元,使数据从一种状态转变到另一种状态。

2022-12-01 12:04:03 475

原创 【SQL】其它查询优化策略

采用count(具体字段)来统计数据行数,尽量用二级索引字段而不是主键索引,因为主键是聚簇索引,扫描时会将所有数据加载到内存中,而二级索引中数据少,加载的成本更低。针对的是会扫描全表的 SQL 语句,如果你可以确定结果集只有一条,那么加上LIMIT 1 的时候,当找到一条结果的时候就不会继续扫描了,这样会加快查询速度。只要有可能,在程序中尽量多使用 COMMIT,这样程序的性能得到提高,需求也会因为 COMMIT 所释放的资源而减少。当B表小于A表时,用in,相当于提前给A表划定范围。

2022-11-27 13:58:58 461

原创 【SQL】索引条件下推ICP

Index Condition Pushdown(ICP)是MySQL 5.6中新特性,是一种在存储引擎层使用索引过滤数据的一种优化方式。ICP可以减少存储引擎访问基表的次数以及MySQL服务器访问存储引擎的次数。

2022-11-27 13:19:45 352

原创 【SQL】查询优化|排序优化|group by优化|分页查询优化|覆盖索引

这是一个常见又头疼的问题,有很庞大的一堆数据,要查看第200万条数据后的10条数据,此时需要MySQL排序前2000010条数据,从中返回第2000000~2000010的记录,其他记录丢弃,查询排序的代价非常大。子查询是 MySQL 的一项重要的功能,可以帮助我们通过一个 SQL 语句实现比较复杂的查询。但是,子查询的执行效率不高。连接查询不需要建立临时表,其速度比子查询要快,如果查询中使用索引的话,性能就会更好。由于覆盖索引可以减少树的搜索次数,显著提升查询性能,所以使用覆盖索引是个常用的优化手段。

2022-11-26 19:36:43 1028

原创 【SQL】索引失效的11种情况

数据库调优的大致方向:sql查询优化技术有很多,大体分为物理查询优化和逻辑查询优化:数据准备:索引失效案例【1】. 全值匹配【2】. 最佳左前缀法则在定义表时,让主键auto_increment,否则,插入一条数据时可能会移动大量数据。如,往 1 5 8 10 15 … 100 中插9,会放在8 10 中间,因为索引默认升序排列。那么10往后的数据都要挪动,页不够时又要放到下一页,每插一条数据都这样挪一次,开销很大我们自定义的主键列id 拥有AUTO_INCREMENT 属性,在插入记录时存

2022-11-24 20:21:41 6890 1

原创 【SQL】之性能分析|慢查询|explain

sql性能分析中常用的一些方法

2022-11-23 16:57:03 859 1

原创 【SQL】索引的创建与设计原则

④ UPDATE、DELETE 的 WHERE 条件列。③ 经常group by和order by的列。⑤ DISTINCT 字段需要创建索引。② 频繁作为where查询条件的字段。① 字段的数值有唯一性的限制。

2022-11-19 20:23:40 471

原创 【SQL】之索引

索引是帮助mysql高效获取数据的数据结构。

2022-11-18 14:23:13 412

原创 【MySQL】存储引擎

innodb与myisam并非替代关系,各自有利弊。

2022-10-08 13:38:45 553

原创 【MySQL】逻辑架构

MySQL是c/s架构,服务器端程序使用mysqld,客户端发送请求到服务器,服务器处理请求,在物理磁盘上的文件中找到数据,再返回给客户端。MySQL 中的查询缓存,不是缓存查询计划,而是查询对应的结果。硬解析:没有找到SQL语句和执行计划,则创建解析树进行解析,生成执行计划,进入优化器。Oracle 通过检查共享池是否存在 SQL 语句的执行计划,来判断进行软解析,还是硬解析。数据缓冲池是把部分预查询的数据提前放入内存中,用到时可以直接在内存中访问,无需从磁盘中加载。优先对使用频次高的热数据进行加载。

2022-10-08 12:21:24 348

原创 正则表达式入门

正则表达式入门基础用法限定符或 运算符字符类元字符贪婪匹配与懒惰匹配实例基础用法限定符used? 问号?可以匹配0个或多个字符d,也就是说d可有可无 (use,used)ab*c 星号 * 可以匹配0次或多次字符b,也就是说b可有可无 (ac,abc,abbbbbbbbc)ab+c 加号+ 可以匹配出现1次以上的字符 (abc,abbbbbbc)ab{6}c 让b出现的次数为6次 (abbbbbbc)ab{2,6}c 让b出现的次数在2~6之间ab{2,}c 让b出现的次数为2次

2022-10-04 11:45:36 341

原创 sqlyog远程连接Linux下mysql8.0报错2003 | telnet访问远程的3306端口,无法打开到主机的连接。 在端口 3306: 连接失败

sqlyog远程连接Linux下mysql8.0,报错2003telnet访问远程的3306端口,报错:无法打开到主机的连接。 在端口 3306: 连接失败首先pingLinux的IP,能ping通;然后查看Linux防火墙3306端口是否开放,发现我的防火墙本来就是关的;再使用telnet访问远程的3306端口,发现无法打开到主机的连接。 在端口 3306: 连接失败。于是我去查看Linux端口状态 发现根本没有3306端口…那我的mysql在使用哪个端口?mysql> 发现端口为0网上查说是m

2022-06-21 14:00:59 3207

原创 【软测面试】找工作前的准备|面试题

八方收集的面试题和找工作的防坑提示

2022-06-19 10:11:48 1068

原创 【git】常用命令|分支操作|GitHub|idea集成git

git常用命令,分支操作,idea集成git,gitee码云

2022-06-17 11:52:39 152

原创 【django+python】web自动化平台搭建

django环境搭建,启动项目,数据建模,优化窗口,接口测试

2022-06-14 12:14:07 1533

原创 【app测试】项目流程

【app测试】项目流程测试前准备工作产品需求评审测试计划用例设计及评审用例执行及缺陷跟踪测试报告测试前准备工作熟悉项目的相关内容:业务特质,角色与用户,技术栈,组织架构图通过项目文档、环境、团队成员快速熟悉项目产品需求评审就产品需求进行确认和评估,项目组成员理解需求,以便后期高效的进行开发测试工作,测试人员需要明确实现的需求范围,提出自己对产品需求不合理或遗漏原型图,流程图测试计划需求说明总体计划安排和负责人测试方案环境搭建及数据准备测试用例测试限制及风险评估版本验收标准用

2022-05-31 13:26:06 146

原创 【fiddler】工作原理|工具使用|接口测试|弱网测试|https安装证书|chrome抓不到包怎么办|willow插件

【fiddler】b/s架构&请求过程理解fiddler工作原理fiddler使用工具栏会话列表b/s架构&请求过程理解我们在使用浏览器访问web页面时,实际上访问的是页面部署在的远程服务器上的web服务器。写好的web网页部署到服务器上,它绑定了ip地址并监听端口,接收和处理前端的http请求。我们访问的页面就是从服务器上请求下来的资源,页面上的每个图片等元素都是一个独立的请求,这些请求都来自于该服务器。如,访问百度https://www.baidu.com/,百度的logo图片ur

2022-05-30 20:04:19 1384

原创 【redis】基本操作|键值对类型

【redis】基本操作|键值对类型redis基本操作键值对字符串 string哈希 hash列表 list无序集合 set有序集合 zsetredis是一个免费开源的NoSQL产品NoSQL: 非关系SQL,仅做数据的增加和删除redis基本操作启动服务端:redis-server在未设置redis.conf的情况下,启动server后要再打开一个终端,启动客户端,不能直接ctrl+z挂起启动客户端:redis-cli (默认不支持中文)redis-cli --raw 支持中文的启动测试连

2022-05-25 11:51:11 1856 1

原创 【app测试】实战1:(华为真机)抖音自动化浏览

【app测试】实战1:抖音自动化浏览

2022-05-23 18:48:05 1620

原创 【接口测试】基本概念|jmeter(八大元件|函数|参数化|断言)

【接口测试】基本概念jmeter介绍入门案例定时器八大元件元件执行顺序http相关元件后置处理器xpath提取器正则表达式提取器json提取器函数与函数助手基本概念1.常见的接口格式:xml主流技术标准是SOAP,WSDL,UDDI等rss:简易信息聚合,基于xml标准,在互联网上被广泛采用的内容包装和投递协议如:人民网rssjson目前相对主流的方案,具有相同含义的信息传输信息量比较小如:京东万象-新闻api2.接口测试作用:测试接口正确性和稳定性,快速定位bug,提高测试

2022-05-22 19:55:54 1238

原创 【web测试】实战1:去哪儿网购买火车票|优化|po模式

【web测试】实战1:去哪网购买火车票测试用例设计1.项目计划2.测试用例项目实战脚本基本代码优化测试用例设计1.项目计划制定测试计划对象 (What)——什么事情场所 (Where)——什么地点时间和程序 (When)——什么时候人员 (Who)——责任人为什么(Why)——原因方式 (How)——如何通盘考虑能遇见的活动集合及异常风险等问题,提早构思弥补方案测试范围项目的测试范围,个人的测试范围项目设定目标规划活动项目简介自动化地实现在去哪儿网订购火车票的目的

2022-05-20 22:18:59 1546

原创 【web测试】不同格式的文件操作(txt,csv,excel,json,xml,yaml)

【web测试】数据驱动

2022-05-19 11:23:54 273

原创 【单元测试】pytest:配置|断言|参数化|夹具|装饰器|插件

【单元测试】pytestunittest:python自带的单元测试框架pytest:单元测试框架,比自带框架更简洁高效

2022-05-18 20:26:19 445

原创 【接口测试】postman:基本使用|变量|断言|参数化|随机数|导出代码

【接口测试】postmanpostman基本使用集合测试设置集合变量:设置全局变量:设置环境变量:用脚本设置变量:postman:http接口测试工具 手工测试postman基本使用免费的数据接口平台(需实名注册):https://wx.jdcloud.com/api/0_0/1(京东万象)获取appkey -> 接口地址写入postman的GET -> 填入需要的参数 -> send -> 得到response集合测试设置集合变量:设置全局变量:设置环境变

2022-05-18 11:00:56 1132

原创 【web测试】selenium:鼠标操作|键盘操作|网页内操作|cookie处理

【web测试】selenium鼠标操作键盘操作下拉框处理页面滚动鼠标操作action = ActionChains(driver)# 右键action.context_click(driver.find_element(By.ID,"su"))# 悬停action.move_to_element(driver.find_element(By.CLASS_NAME, "soutu-btn"))# 拖拽,没有中间过程time.sleep(1)action.drag_and_drop(dri

2022-05-17 10:49:43 598

原创 【web测试】selenium:环境搭建|入门案例|元素定位|浏览器操作|页面等待|网站弹出安全验证怎么办

【web测试】seleniumselenium环境搭建:入门:打开一个网页元素定位元素操作浏览器的操作selenium环境搭建:基于python环境selenium安装、卸载、查看:安装 pip install selenium卸载pop uninstall selenium查看 pip show seleniumwebdriver下载chromewebdriver:国内镜像找对应的浏览器版本下载下载解压好,文件地址放入系统path变量中,或把文件放入项目目录。入门:打开一个网页

2022-05-16 10:14:25 520

原创 【移动测试ios】编写和运行自动化脚本

【移动测试iOS】准备工作编写和运行自动化脚本使用真机进行自动化测试准备工作1.使用Xcode打开要运行的程序2.选择将要运行的程序和模拟器设备3.command+r运行4.打开并启动appium5.appium session 元素定位编写和运行自动化脚本import timefrom appium import webdriverdesired_caps = dict()desired_caps['platformName'] = 'iOS'desired_caps['pla

2022-05-14 20:00:00 2602

原创 【移动测试Android】元素定位|基本操作|手势操作

打开手机上的“设置”,点击“显示”from appium import webdriverimport time# 连接移动设备所必需的参数,放到字典中from selenium.webdriver.common.by import Bydesired_caps = {'deviceName': '127.0.0.1:62001', 'platformName': 'Android', 'platformVersion': '7.1', 'appPackage':

2022-05-04 11:35:42 1819

原创 【算法笔记】树的遍历 |【PAT A1053】Path of Equal Weight

【算法笔记】树的遍历树的静态写法树的先根遍历树的层序遍历从树的遍历看DFS与BFS【PAT A1053】Path of Equal Weight思路代码树的静态写法在二叉树中,由数据域和指针域组成,左指针指向左子树根结点的地址,右指针指向右子树根结点的地址。对一棵一般意义的树来说,仍然可以保留数据域,而令指针域存放其所有子结点的地址(或者为其开一个数组,存放所有子结点的地址)。但还是建议使用静态方法,用数组下标存放地址。需要事先开一个大小不低于结点上限个数的结点数组:struct node{ typ

2022-05-02 13:28:03 559

原创 【移动测试Android】adb|代码控制手机

【移动测试】ADBadb:adb命令adb:android debug bridge 安卓手机与电脑沟通的桥梁,通过命令行去操作手机(安卓底层是linux)adb命令查看设备 adb devices 进入当前手机linux系统 adb shell 获取手机Android版本 adb shell getprop ro.build.version.release 获取手机当前运行的程序和界面的名称 adb shell dumpsys window windows | findstr mFocus

2022-04-28 18:47:38 1825

原创 【算法笔记】二叉树基本操作

【算法笔记】二叉树基本操作二叉树存储结构与基本操作二叉树结点的查找、修改二叉树结点的插入二叉树的创建完全二叉树的存储结构二叉树的遍历先序遍历中序遍历后序遍历层序遍历给定二叉树的先序遍历和中序遍历序列,重建这棵二叉树二叉树的静态实现[PAT A1020] Tree Traversals二叉树存储结构与基本操作二叉链表:struct node{ typename data; //数据域 node* lchild; //指向左子树根结点的指针 node* rchild; //指向右子树根结点的指针}

2022-04-28 17:32:44 1032

原创 【python】unittest框架

【python】unit test框架unittest组成unittest组成TestCase (最核心的模块)测试用例,每个TestCase 都是一个代码文件,在这个代码文件中来书写真正的用例代码。TestSuite测试套件,用来管理、组装(打包)多个TestCaseTestRunner测试执行,测试运行,用来执行TestSuiteTestLoader测试加载,对TestSuite的补充...

2022-04-27 13:39:47 1298

原创 【SQL】之触发器

【SQL】之触发器CREATE TRIGGER 触发器名称{BEFORE|AFTER} {INSERT|UPDATE|DELETE} ON 表名FOR EACH ROW触发器执行的语句块;-- 触发器#准备工作CREATE DATABASE dbtest;USE dbtest;CREATE TABLE test_trigger (id INT PRIMARY KEY AUTO_INCREMENT,t_note VARCHAR(30));CREATE TABLE test_trig

2022-04-25 18:20:52 668

原创 【SQL】之变量,流程控制与游标

【SQL】之变量,流程控制与游标一、变量系统变量查看系统变量修改系统变量用户变量会话用户变量局部变量二、定义条件与处理程序定义条件定义处理程序三、流程控制if···elseif···else···end if一、变量系统变量系统变量分为全局系统变量(需要添加global 关键字)以及会话系统变量(需要添加 session 关键字),有时也把全局系统变量简称为全局变量,有时也把会话系统变量称为local变量。如果不写,默认会话级别。静态变量(在 MySQL 服务实例运行期间它们的值不能使用 set 动态

2022-04-25 11:30:42 1322 1

原创 【算法笔记】广度优先搜索BFS

【算法笔记】广度优先搜索BFS例题1思路代码例题2思路代码提示广度优先搜索一般由队列实现,且总是按层次的顺序进行遍历,基本写法如下:void BFS(int s){ queue<int> q; q.push(s); //定义一个队列q,并将起点s入队 //队列q非空 while(!q.empty()){ 取出队首元素top; 访问队首元素top; 将队首元素出队; 将top的下一层结点中未曾入队的结点全部入队,并设置为已入队; //标记层号为now的层号+1,同

2022-04-24 16:57:05 1824

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除