自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mysql临时表

MySQL 什么时候会使用内部临时表?1、如果语句执行过程可以一边读数据,一边直接得到结果,是不需要额外内存的,否则就需要额外的内存,来保存中间结果;2、join_buffer 是无序数组,sort_buffer 是有序数组,临时表是二维表结构;3、如果执行逻辑需要用到二维表特性,就会优先考虑使用临时表。比如 union 需要用到唯一索引约束, group by 还需要用到另外一个字段来存累积计数。内存表。

2024-05-10 00:26:19 1023 1

原创 mysql排序

1、从索引 (city,name,age) 找到第一个满足 city='杭州’条件的记录,取出其中的 city、name 和 age 这三个字段的值,作为结果集的一部分直接返回;3、到主键 id 索引取出整行,取 name、city、age 三个字段的值,存入 sort_buffer 中;2、到主键 id 索引取出整行,取 name、city、age 三个字段的值,作为结果集的一部分直接返回;5、重复步骤 3、4 直到 city 的值不满足查询条件为止,对应的主键 id 也就是图中的 ID_Y;

2024-05-10 00:20:07 518

原创 MySQL自增主键

在这个空表 t 里面执行 insert into t values(null, 1, 1); 插入一行数据,再执行 show create table 命令,就可以看到如下图所示的结果:表定义里面出现了一个 AUTO_INCREMENT=2,表示下一次插入数据时,如果需要自动生成自增值,会生成 id=2。表的结构定义存放在后缀名为.frm 的文件中,但是并不会保存自增值不同的引擎对于自增值的保存策略不同:在 MySQL 里面,如果字段 id 被定义为 AUTO_INCREMENT,在插入一行数据的时候,

2024-05-10 00:18:27 626

原创 MySQL优化

1、2、3、两个表的字符集不同、字符集相同关联字段类型不同;连接过程中关联字段会按照转换规则转化, 如果转化驱动表的字段,被驱动表还是会走索引的, 如果转化的是被驱动表的字段,则驱动表不会走, 是直接导致对被驱动表做全表扫描的原因。

2024-05-10 00:18:01 1014

原创 MySQL锁

全局锁就是对整个数据库实例加锁。MySQL 提供了一个加全局读锁的方法,命令是 Flush tables with read lock (FTWRL)。当你需要让整个库处于只读状态的时候,可以使用这个命令,之后其他线程的以下语句会被阻塞:数据更新语句(数据的增删改)、数据定义语句(包括建表、修改表结构等)和更新类事务的提交语句。在下开启一个事务官方自带的逻辑备份工具是 mysqldump。

2024-05-10 00:16:14 916

原创 MySQL索引

一种以键 - 值(key-value)存储数据的结构,把值放在数组里,用一个哈希函数把key 换算成一个确定的位置,然后把 value 放在数组的这个位置。多个 key 值经过哈希函数的换算,会出现同一个值的情况。处理这种情况的一种方法是,拉出一个链表。新增时速度会很快,只需要往后追加。但缺点是,因为不是有序的,所以哈希索引做区间查询的速度是很慢的。

2024-05-10 00:15:41 815

原创 insert语句的锁

实际上,真正更新的只有一行,只是在代码实现上,insert 和 update 都认为自己成功了,update 计数加了 1, insert 计数也加了 1。–single-transaction 的作用是,在导出数据的时候不需要对表 db1.t 加表锁,而是使用 START TRANSACTION WITH CONSISTENT SNAPSHOT 的方法;insert into …on duplicate key update 这个语义的逻辑是,插入一行数据,如果碰到唯一键约束,就执行后面的更新语句。

2024-05-10 00:11:44 830

原创 mysql--join

mysql的join流程

2024-05-10 00:11:07 911

原创 MySQL事务

事务

2024-05-10 00:08:33 807

原创 Mysql幻读

5、范围查询会访问到不满足条件的第一个值为止(唯一索引也一样)。

2024-05-10 00:07:09 926

原创 Memory引擎

内存表不支持 Blob 和 Text 字段,并且即使定义了 varchar(N),实际也当作 char(N),也就是固定长度字符串来存储,因此内存表的每行数据长度相同。内存表的数据部分以数组的方式单独存放,而主键 id 索引里,存的是每个数据的位置。2、当数据文件有空洞的时候,InnoDB 表在插入新数据的时候,为了保证数据有序性,只能在固定的位置写入新值,而内存表找到空位就可以插入新值;内存表不支持行锁,只支持表锁。1、InnoDB 表的数据总是有序存放的,而内存表的数据就是按照写入顺序存放的;

2024-05-10 00:05:49 630

原创 mysql执行流程

MySQL主要而分为server层和存储引擎层两部分连接命令连接命令中的 mysql 是客户端工具,用来跟服务端建立连接。在完成经典的 TCP 握手后,连接器就要开始认证你的身份,这个时候用的就是你输入的用户名和密码。查询缓存的失效非常频繁,只要有对一个表的更新,这个表上所有的查询缓存都会被清空对于更新压力大的数据库来说,查询缓存的命中率会非常低。除非你的业务就是有一张静态表,很长时间才会更新一次。比如,一个系统配置表,那这张表上的查询才适合使用查询缓存。对 SQL 语句做解析。

2024-05-10 00:05:09 1059 1

原创 VUE3学习

项目中没有 webpack.config.js文件,因为Vue脚手架项目用的修改端口port:3000,//修改端口open:true//浏览器自动打开获取标签,扩展额外的功能inserted方法,指令所在标签,被插入到网页上触发;入参是指令所在标签update方法,指令对应数据、标签更新时,此方法执行。

2024-05-05 20:40:02 473

原创 Java 8 新特性

函数式接口、Lambda表达式、Stream流、Optinal、CompletableFuture、LocalDateTime

2024-01-01 15:54:36 931

原创 git速通

快速上手Git,在线练习Git

2023-06-10 23:54:52 135

原创 浏览器中的网络

HTTP/0.9 是于 1991 年提出的,主要用于学术交流,需求很简单——用来在网络之间传递 HTML 超文本的内容,所以被称为。整体来看,它的实现也很简单,采用了基于请求响应的模式,从客户端发出请求,服务器返回数据。来看看 HTTP/0.9 的一个完整的请求流程(可参考下图)。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BUmDTzmd-1683724254905)(null)]

2023-05-19 01:00:00 161

原创 浏览器渲染

样式计算阶段的目的是为了计算出 DOM 节点中每个元素的具体样式,在计算过程中需要遵守 CSS 的继承和层叠两个规则。这个阶段最终输出的内容是每个 DOM 节点的样式,并被保存在 ComputedStyle 的结构内。

2023-05-14 00:45:00 140

原创 Gradle

通过Project 中的 task() 方法//方式一})//方式二//方式三task C{//方式四通过 tasks 对象的 create 或者 register 方法//regists 执行的是延迟创建,只有当task被需要使用的时候才会被创建定义任务的同时指定任务的属性,也可以给已有的任务动态分配属性配置项描述默认值type基于一个存在的Task来创建,和类继承相似overwrite是否替换存在的Task,与type配合使用falsedependsOn配置任务的依赖。

2023-05-13 00:45:00 523

原创 浏览器的页面循环

接着 JavaScript 执行结束,准备退出全局执行上下文,这时候就到了检查点了,JavaScript 引擎会检查微任务列表,发现微任务列表中有微任务,那么接下来,依次执行这两个微任务。这势必会影响到下个任务的执行时间。页面的渲染事件、各种 IO 的完成事件、执行 JavaScript 脚本的事件、用户交互的事件等都随时有可能被添加到消息队列中,而且添加事件是由系统操作的,JavaScript 代码不能准确掌控任务要添加到队列中的位置,控制不了任务在消息队列中的位置,所以很难控制开始执行任务的时间。

2023-05-12 00:45:00 344

原创 浏览器中的页面模块

虚拟 DOM 到底要解决哪些事情。将页面改变的内容应用到虚拟 DOM 上,而不是直接应用到 DOM 上。变化被应用到虚拟 DOM 上时,虚拟 DOM 并不急着去渲染页面,而仅仅是调整虚拟 DOM 的内部状态,这样操作虚拟 DOM 的代价就变得非常轻了。在虚拟 DOM 收集到足够的改变时,再把这些变化一次性应用到真实的 DOM 上。该图是结合 React 流程画的一张虚拟 DOM 执行流程图,结合这张图来分析下虚拟 DOM 到底怎么运行的。创建阶段。

2023-05-10 21:09:21 789

原创 全国地区编码python爬取代码

因为要用地区编码,找了一遍,不是太旧,就是要收费,所以自己去爬一下,需要可以自取。

2023-05-10 21:06:45 562

原创 浏览器安全

如果两个 URL 的协议、域名和端口都相同,就称这两个 URL 同源浏览器默认两个相同的源之间是可以相互访问资源和操作 DOM 的。两个不同的源之间若想要相互访问资源或者操作 DOM,那么会有一套基础的安全策略的制约,我们把这称为同源策略。同源策略主要表现在 DOM、Web 数据和网络这三个层面。第一个,DOM 层面。同源策略限制了来自不同源的 JavaScript 脚本对当前 DOM 对象读和写的操作。第二个,数据层面。

2023-04-26 23:35:42 194

原创 浏览器JavaScript执行原理分析

编译时后者会覆盖前者。

2023-04-26 23:34:49 469

原创 区块链的技术

在非对称算法中,私钥一般是通过一个随机数产生的,这个随机数我们也叫做种子,从这个角度来说,知道了这个随机数也就等于知道了私钥,不过私钥的产生范围非常大,在比特币中是 2 的 256 次方,差不多在 10 的 70 方数量级上。第一种方案提供了较好的交互过程,减轻了网络负担。在区块链上,一个比特币交易的产生由两部分组成,第一部分是签名加锁,对应到的是交易的输出、第二部分是解锁花费,对应到的是交易的输入,当我们构造一笔交易的时候必然会用到私钥,这是所有数字货币资产控制权由私钥保证的根本原因。

2023-04-08 20:07:01 2353

原创 架构师学习

如何设计系统架构

2023-03-27 22:49:31 436

原创 DDD领域驱动设计学习

DDD学习

2023-03-06 02:15:00 292

原创 Python自动化

操作文件,文件夹操作Excel、Pdf、Word、ppt邮件收发QQ、微信机器人制作思路

2023-03-03 02:45:00 127

原创 python学习

python基础知识

2023-02-21 23:45:00 106

原创 Java并发工具类

LockConditionSemaphoreReadWriteLockStampedLockCountDownLatch、CyclicBarrier并发容器原子类Executor与线程池Future(获取任务执行结果)CompletableFuture(异步编程)CompletionServiceFork/Join(并行计算框架)

2022-10-07 01:30:00 526

原创 Java多线程调优

Synchronized 同步锁实现原理Lock 锁的实现原理锁优化

2022-10-06 01:30:00 233

原创 并发中的问题

安全性能活跃性问题性能问题

2022-10-05 01:30:00 118

原创 并发编程理论

CPU、内存、I/O 设备,有一个核心矛盾就是这三者的速度差异。为了合理利用 CPU 的高性能,平衡这三者的速度差异:1、CPU 增加了缓存,以均衡与内存的速度差异;2、操作系统增加了进程、线程,以分时复用 CPU,进而均衡 CPU 与 I/O 设备的速度差异;3、编译程序优化指令执行次序,使得缓存能够得到更加合理地利用。

2022-10-04 01:30:00 151

原创 高质量代码

高质量的代码特点:可维护性、可读性、可扩展性、灵活性、简洁性、可复用性、可测试性

2022-10-03 01:30:00 59

原创 三、设计模式

设计模式要干的事情就是解耦。创建型模式是将创建和使用代码解耦结构型模式是将不同功能代码解耦行为型模式是将不同的行为代码解耦

2022-10-02 01:30:00 102

原创 五、代码重构

如何代码易于重构

2022-10-01 01:30:00 577

原创 四、编程规范

编程规范主要解决的是代码的可读性问题*

2022-09-30 01:30:00 78

原创 二、设计原则SOLID

设计模式基础,五大设计原则SOLID

2022-09-29 01:30:00 77

原创 一、面对对象

主流的编程风格有三种,它们分别是面向过程、面向对象和函数式编程

2022-09-28 01:30:00 65

原创 二、结构型模式

结构型设计模式主要解决“类或对象的组合或组装”问题常用的有:代理模式、桥接模式、装饰者模式、适配器模式。不常用的有:门面模式、组合模式、享元模式。

2022-09-27 01:30:00 54

原创 一、创建型模式

创建型模式主要解决对象的创建问题,封装复杂的创建过程,解耦对象的创建代码和使用代码

2022-09-26 01:30:00 62

空空如也

空空如也

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

TA关注的人

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