05 2023 档案

摘要:1 前言 这节我们简单看看WAN、LAN和WLAN哈。 2 WAN、LAN和WLAN 普通家用型无线路由器会有WAN端口和LAN端口,简单来说WAN端口用于外网(公网),LAN端口用于内网。 在有的路由器上,标注有WAN口(有的路由器是Internet口)和LAN口(有的路由器标注的是1、2、3、4 阅读全文
posted @ 2023-05-31 11:11 酷酷- 阅读(1102) 评论(0) 推荐(0) 编辑
摘要:1 前言 今天我们来看看DNS,DNS 是互联网核心协议之一。不管是上网浏览,还是编程开发,都需要了解一点它的知识。 2 DNS 是什么? DNS (Domain Name System 的缩写)的作用非常简单,就是根据域名查出IP地址。你可以把它想象成一本巨大的电话本。 举例来说,如果你要访问域名 阅读全文
posted @ 2023-05-30 13:41 酷酷- 阅读(89) 评论(0) 推荐(0) 编辑
摘要:1 前言 今天给大家讲讲衡量网络性能的四大指标:带宽、时延、抖动、丢包。 如何客户需要我们去评估一个网络的性能,我们就可以从这四方面去进行评估。 2 带宽 2.1 带宽概念 带宽在百度百科中定义:在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。 计算机网络的带宽是指网络可通过的最高数据 阅读全文
posted @ 2023-05-29 07:42 酷酷- 阅读(898) 评论(0) 推荐(0) 编辑
摘要:1 前言 我们知道,如果你知道某台电脑的IP,就可以向这个IP发起连接请求,建立连接后就可以操作收发数据,如下图五层网络协议对应的消息体变化分析。 要发送的数据,会在网络层里加入IP头,如下IP头: 这里面最重要的是发送端和接收端的IP地址。这个IP地址就像是一个门牌号一样,有了它,数据包就能在这个 阅读全文
posted @ 2023-05-29 07:24 酷酷- 阅读(2473) 评论(0) 推荐(0) 编辑
摘要:1 前言 上一节我们分析了互联网的总体构思,从下至上,每一层协议的设计思想。 这是从设计者的角度看问题,今天我想切换到用户的角度,看看用户是如何从上至下,与这些协议互动的。 2 回顾 我们已经知道,网络通信就是交换数据包。电脑A向电脑B发送一个数据包,后者收到了,回复一个数据包,从而实现两台电脑之间 阅读全文
posted @ 2023-05-29 06:56 酷酷- 阅读(77) 评论(0) 推荐(0) 编辑
摘要:1 前言 我们每天使用互联网,你是否想过,它是如何实现的? 全世界几十亿台电脑,连接在一起,两两通信。上海的某一块网卡送出信号,北京的另一块网卡居然就收到了,两者实际上根本不知道对方的物理位置,你不觉得这是很神奇的事情吗? 互联网的核心是一系列协议,总称为"互联网协议"(Internet Proto 阅读全文
posted @ 2023-05-29 06:43 酷酷- 阅读(133) 评论(0) 推荐(0) 编辑
摘要:1 前言 MySQL 会发生死锁么,当然会,有锁的地方,有多个事务的地方,就会出现互相争夺对方资源的情况,就会产生僵持,比如我们的业务场景:主要逻辑就是新增订单、修改订单、查询订单等操作。然后因为订单是不能重复的,所以当时在新增订单的时候做了幂等性校验,做法就是在新增订单记录之前,先通过 selec 阅读全文
posted @ 2023-05-26 13:36 酷酷- 阅读(188) 评论(0) 推荐(0) 编辑
摘要:1 前言 我们这节讨论下 记录锁+间隙锁可以防止删除操作而导致的幻读吗?答案是可以的哈。 2 什么是幻读 首先来看看 MySQL 文档是怎么定义幻读(Phantom Read)的: The so-called phantom problem occurs within a transaction w 阅读全文
posted @ 2023-05-26 07:46 酷酷- 阅读(83) 评论(0) 推荐(0) 编辑
摘要:1 前言 我们这节讨论下 update 语句修改数据库数据的时候,where 条件没有带上索引,会导致锁表么,说个前提,接下来说的案例都是基于 InnoDB 存储引擎,且事务的隔离级别是可重复读。 2 为什么会发生这种现象 InnoDB 存储引擎的默认事务隔离级别是「可重复读」,但是在这个隔离级别下 阅读全文
posted @ 2023-05-26 07:03 酷酷- 阅读(1671) 评论(0) 推荐(0) 编辑
摘要:1 前言 上节我们看了MySQL有哪些锁,那么这节我们就来看看MySQL的加锁过程,什么样的操作下加了什么样的锁等。 我先在这里给大家补充一个知识点:比如我的主键有:1、3、5 1的间隙锁是:(-oo,1) 1的next-key锁也就是临键锁是:(-oo,1] 3的间隙锁是:(1,3) 3的next 阅读全文
posted @ 2023-05-25 16:46 酷酷- 阅读(596) 评论(0) 推荐(0) 编辑
摘要:1 前言 我们这节来看看MySQL中的锁,采用 Q&A 的形式,看起来会比较轻松。 2 锁的分类 在 MySQL 里,根据加锁的范围,可以分为全局锁、表级锁和行锁三类。 3 全局锁 3.1 全局锁是怎么用的? 要使用全局锁,则要执行这条命令: flush tables with read lock 阅读全文
posted @ 2023-05-25 10:13 酷酷- 阅读(75) 评论(0) 推荐(0) 编辑
摘要:1 前言 我们上节MySQL InnoDB 引擎的默认隔离级别虽然是「可重复读」,但是它很大程度上避免幻读现象(并不是完全解决了),解决的方案有两种: 针对快照读(普通 select 语句),是通过 MVCC 方式解决了幻读,因为可重复读隔离级别下,事务执行过程中看到的数据,一直跟这个事务启动时看到 阅读全文
posted @ 2023-05-24 10:40 酷酷- 阅读(336) 评论(0) 推荐(0) 编辑
摘要:1 前言 这节我们来看看 MySQL中的事务,比如我们生活中的转账,要保证转账业务里的所有数据库的操作是不可分割的,要么全部执行成功 ,要么全部失败,不允许出现中间状态的数据。数据库中的「事务(Transaction)」就能达到这样的效果。 我们在转账操作前先开启事务,等所有数据库操作执行完成后,才 阅读全文
posted @ 2023-05-24 10:19 酷酷- 阅读(78) 评论(0) 推荐(0) 编辑
摘要:1 前言 这节我们来看个小问题: 题目1:一个表有多个字段,其中 name 是索引字段,其他非索引,id 拥有自增主键索引。 题目2:一个表有2个字段,其中 name 是索引字段,id 拥有自增主键索引。 上面两张表,分别执行以下查询语句: select * from s where name li 阅读全文
posted @ 2023-05-24 07:13 酷酷- 阅读(163) 评论(0) 推荐(0) 编辑
摘要:1 前言 在工作中,如果我们想提高一条语句查询速度,通常都会想对字段建立索引。 但是索引并不是万能的。建立了索引,并不意味着任何查询语句都能走索引扫描。 稍不注意,可能你写的查询语句是会导致索引失效,从而走了全表扫描,虽然查询的结果没问题,但是查询的性能大大降低。 今天就来跟大家盘一盘,常见的 6 阅读全文
posted @ 2023-05-24 07:01 酷酷- 阅读(65) 评论(0) 推荐(0) 编辑
摘要:1 前言 作为在后端圈开车的多年老司机,是不是经常听到过: “MySQL 单表最好不要超过 2000W” “单表超过 2000W 就要考虑数据迁移了” “你这个表数据都马上要到 2000W 了,难怪查询速度慢” 这些名言民语就和 “群里只讨论技术,不开车,开车速度不要超过 120 码,否则自动踢群” 阅读全文
posted @ 2023-05-24 06:43 酷酷- 阅读(90) 评论(0) 推荐(0) 编辑
摘要:1 前言 这节我们来聊聊索引哈。 2 什么是索引 当你想查阅书中某个知识的内容,你会选择一页一页的找呢?还是在书的目录去找呢? 傻瓜都知道时间是宝贵的,当然是选择在书的目录去找,找到后再翻到对应的页。书中的目录,就是充当索引的角色,方便我们快速查找书中的内容,所以索引是以空间换时间的设计思想。 那换 阅读全文
posted @ 2023-05-23 15:24 酷酷- 阅读(63) 评论(0) 推荐(0) 编辑
摘要:1 前言 不知道大家有没有困惑,我们的每行记录里的NULL值都是如何存放的,一行能无限制的放数据么有没有大小边界呢?要想知道这些,就要来看看MySQL 一行记录的存储结构。 2 MySQL 的数据存放在哪个文件? 大家都知道 MySQL 的数据都是保存在磁盘的,那具体是保存在哪个文件呢? MySQL 阅读全文
posted @ 2023-05-23 11:05 酷酷- 阅读(111) 评论(0) 推荐(0) 编辑
摘要:1 前言 我们学习 SQL 的时候,大家肯定第一个先学到的就是 select 查询语句了,比如下面这句查询语句: // 在 product 表中,查询 id = 1 的记录 select * from product where id = 1; 但是有没有想过,MySQL 执行一条 select 查 阅读全文
posted @ 2023-05-23 10:17 酷酷- 阅读(93) 评论(0) 推荐(0) 编辑
摘要:1 前言 我们本节来看看计数功能,大家可能都有用过count(*) 、 count(1)或者count(某个字段)那么哪种好呢?我们来讨论讨论。 2 count理解 当我们对一张数据表中的记录进行统计的时候,习惯都会使用 count 函数来统计,但是 count 函数传入的参数有很多种,比如 cou 阅读全文
posted @ 2023-05-23 07:37 酷酷- 阅读(89) 评论(0) 推荐(0) 编辑
摘要:1 前言 我们本节来看看我们常说的索引下推。 2 什么是索引下推 索引下推(Index Condition Pushdown,简称ICP),是MySQL5.6版本的新特性,用于优化数据查询。 不使用索引条件下推优化时存储引擎通过索引检索到数据,然后返回给MySQL服务器,服务器然后判断数据是否符合条 阅读全文
posted @ 2023-05-23 06:59 酷酷- 阅读(90) 评论(0) 推荐(0) 编辑
摘要:1 前言 我们本节看一个小问题,就是我们平时用的varchar(n)能存储几个汉字。 2 一个中文汉字占多少字节与编码有关 在mysql中,一个中文汉字所占的字节数与编码格式有关:如果是GBK编码,则一个中文汉字占2个字节;如果是UTF8编码,则一个中文汉字占3个字节,而英文字母占1字节。 UTF8 阅读全文
posted @ 2023-05-23 06:38 酷酷- 阅读(1453) 评论(0) 推荐(0) 编辑
摘要:1 前言 我们本节放松放松,看些基础的东西,来回顾下MySQL的字段类型。MySQL中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。 主要包括以下五大类: 整数类型:BIT、BOOL、TINY INT、SMALL I 阅读全文
posted @ 2023-05-23 06:27 酷酷- 阅读(193) 评论(0) 推荐(0) 编辑
摘要:1 前言 我们都知道 MySQL 里 InnoDB 存储引擎是采用 B+ 树来组织数据的。但是大家知道 B+ 树里的节点里存放的是什么呢?查询数据的过程又是怎样的?那么这节我们从数据页的角度看 B+ 树,看看每个节点长啥样。 2 InnoDB 是如何存储数据的? MySQL 支持多种存储引擎,不同的 阅读全文
posted @ 2023-05-22 15:44 酷酷- 阅读(65) 评论(0) 推荐(0) 编辑
摘要:1 前言 本节我们来讨论讨论为什么MySQL 采用 B+ 树作为索引。 要解释这个问题,其实不单单要从数据结构的角度出发,我们要知道的是我们的数据都在哪里,是不是都在磁盘,那磁盘最大的瓶颈是不是就是IO次数,那我们想要的是不是就是经历最少的IO获取到我们想要的数据呢?是不是这个道理,那我们就一步步来 阅读全文
posted @ 2023-05-22 15:27 酷酷- 阅读(72) 评论(0) 推荐(0) 编辑
摘要:1 前言 有的时候Excel的东西要导进数据库,其中的一个办法就是在Excel里拼接SQL。 2 常用记录 下边这个是公式,可以参考着修改: =CONCAT("INSERT INTO z_tlghryxx (xh,xm,tel,dw) VALUES ('",A2,"','",C2,"','",B2, 阅读全文
posted @ 2023-05-19 08:37 酷酷- 阅读(1306) 评论(0) 推荐(0) 编辑
摘要:1 前言 本节我们主要是讲讲@Value的使用以及它是什么时候解析的并且解析后是如何注入值的呢?我们来看看。 2 @Value的使用 @Value 注解可以用来将外部的值动态注入到 Bean 中,在 @Value 注解中,可以使${} 与 #{} ,它们的区别如下: (1)@Value("${}") 阅读全文
posted @ 2023-05-15 15:31 酷酷- 阅读(14262) 评论(0) 推荐(1) 编辑
摘要:1 前言 不知道大家对于配置文件的加载有没有考虑过是什么时候加载解析的,这节我们就来看看。 2 执行入口 我们就先来看看加载配置的入口,核心类就是 ConfigFileApplicationListener主要作用就是读取应用的配置文件并add到Environment的PropertySources 阅读全文
posted @ 2023-05-15 08:16 酷酷- 阅读(1077) 评论(0) 推荐(1) 编辑
摘要:1 前言 这节我们就来看看事务的加载过程,前置知识是大家可以先看看我之前写的SpringBoot的自动装配过程哈。因为事务在SpringBoot中,是通过自动装配作为入口点,然后转换为加载AOP的执行流程。 2 加载过程 SpringBoot启动会扫描spring.factories文件,加载所有需 阅读全文
posted @ 2023-05-12 14:56 酷酷- 阅读(308) 评论(0) 推荐(0) 编辑
摘要:1 前言 本节我们开始来看看 Spring 事务哈,大家看之前首先要看过 IOC、AOP、甚至代理哈,如果这些你不知道原理,你看任何东西都会很费劲,比如Bean的生命周期、AOP的切入时机、什么时候创建代理以及执行时机,这些不知道的话,你就看事务的话,会很懵,当然前提是大家是带着思考看的哈,单纯看不 阅读全文
posted @ 2023-05-12 10:45 酷酷- 阅读(127) 评论(0) 推荐(0) 编辑
摘要:1 前言 Java8 出来的 stream 写法让我们对数据的处理带来了一些写法上的增进,这节就简单记录下平时使用的 stream 的一些操作,关于 stream 的书籍,可以看一下 Java8实战,里边会有两三章讲解我们的 stream。 2 常用记录 // 根据单个属性或者多个属性去重 比如根据 阅读全文
posted @ 2023-05-11 11:03 酷酷- 阅读(64) 评论(0) 推荐(0) 编辑
摘要:1 前言 我们都知道 SpringBoot 有个自动装配的机制,那你们知道平时如何使用么,以及他是什么时候执行的么,那么本节我们就来看看。 2 为什么要有自动装配 我们经历过SSM时期的时候,比如要引进Redis,是不是要先要导Maven依赖,还要进行大量的配置Bean,然后才能使用,而使用 Spr 阅读全文
posted @ 2023-05-10 15:48 酷酷- 阅读(637) 评论(0) 推荐(1) 编辑
摘要:1 前言 上节我们看了上下文的创建和准备,那么我们这节就来看看刷新上下文。 2 刷新上下文 首先就是我们的 run 方法,执行刷新上下文 refreshContext(context): // ###run方法 refreshContext(context); // ###SpringApplica 阅读全文
posted @ 2023-05-06 17:37 酷酷- 阅读(459) 评论(0) 推荐(0) 编辑
摘要:1 前言 上节我们看了下环境准备,那么接下来我们就要看重头了,就是创建和准备上下文了。 // 创建上下文 context = createApplicationContext(); // 加载异常解析报告类 exceptionReporters = getSpringFactoriesInstanc 阅读全文
posted @ 2023-05-06 16:22 酷酷- 阅读(488) 评论(0) 推荐(0) 编辑
摘要:1 前言 这节我们来看看 Spingboot 启动前的一些环境准备工作: // 封装请求参数 ApplicationArguments applicationArguments = new DefaultApplicationArguments(args); // 准备环境变量,包含系统属性和用户配 阅读全文
posted @ 2023-05-06 13:51 酷酷- 阅读(382) 评论(0) 推荐(0) 编辑
摘要:1 前言 我们都知道 SpringBoot 启动的时候,@SpringBootApplication 注解里是会有一个@ComponentScan注解,用于扫描当前启动类目录下的所有组件,那它是什么时候执行的呢,具体的执行过程是怎么样的我们这节就来看一下。 2 @ComponentScan 注解作用 阅读全文
posted @ 2023-05-06 07:44 酷酷- 阅读(1027) 评论(0) 推荐(0) 编辑
摘要:1 前言 我们看到 SpringBoot 启动的时候,会在每个时机执行监听器,这节我们就来看看,加载监听器的过程我们就不说了哈,上节说过了哈,本节我们主要看: (1)SpringApplicationRunListeners 的创建过程 (2)监听器的执行时机有哪些 (3)监听器的执行过程 三个方面 阅读全文
posted @ 2023-05-05 15:07 酷酷- 阅读(2188) 评论(0) 推荐(2) 编辑
摘要:1 Map相关 摘自 Spring中加载 META-INF/spring.factories 下的类名,Map的巧初始化: Map<String, List<String>> result = cache.get(classLoader); // 缓存中有就直接返回 if (result != nu 阅读全文
posted @ 2023-05-05 06:39 酷酷- 阅读(307) 评论(0) 推荐(0) 编辑
摘要:1 前言 本节主要讲下 SpringBoot 启动的时候,加载初始化器、监听器的过程哈。 2 加载时机 我们先来看下加载的时机,也就是什么时候加载的呢,就是我们 SpringBoot启动的时候,创建 SpringApplication的时候就会去加载的,我们看下: @SpringBootApplic 阅读全文
posted @ 2023-05-04 15:54 酷酷- 阅读(382) 评论(0) 推荐(1) 编辑
摘要:我们在IDEA里,install会执行test,我们像跳过的话: settings里搜索maven,如下: 即可。 效果: 阅读全文
posted @ 2023-05-04 06:32 酷酷- 阅读(1669) 评论(0) 推荐(0) 编辑
摘要:1 前言 上节我们介绍了几个页面替换算法,也就是一种淘汰策略,这节我们就看一种新的算法:LRU哈。 2 LRU LRU(Least Recently Used,最近最少使用)算法根据页面的历史请求记录来进行淘汰页面,其核心思想是 “如果页面数据最近被访问过,那么将来被访问的几率也更高”。基于这个思想 阅读全文
posted @ 2023-05-03 14:48 酷酷- 阅读(195) 评论(0) 推荐(0) 编辑
摘要:1 前言 本节我们来看我们常用的哈希算法哈。 2 为什么要有哈希 假设我们要设计一个系统来存储将员工手机号作为主键的员工记录,并希望高效地执行以下操作: 插入电话号码和相应的信息。(插入) 搜索电话号码并获取信息。(查找) 删除电话号码及相关信息。(删除) 我们可以考虑使用以下数据结构来维护不同电话 阅读全文
posted @ 2023-05-02 21:30 酷酷- 阅读(292) 评论(0) 推荐(0) 编辑
摘要:1 前言 功能:当缺页中断发生,需要调入新的页面而内存已满时,选择内存当中哪个物理页面被置换。 目标:尽可能地减少页面的换进换出次数(即缺页中断的次数)。具体来说,把未来不再使用的或短期内较少使用的页面换出,通常只能在局部原理指导下依据过去的统计数据来进行预测。 2 最优页面替换算法 基本思路:当一 阅读全文
posted @ 2023-05-02 20:21 酷酷- 阅读(248) 评论(0) 推荐(0) 编辑
摘要:1 前言 这节我们来看一些Linux下的常用的一些命令哈。 2 cd 切换目录 cd (change directory:英文释义是改变目录)切换目录 cd ../ ;跳到上级目录 cd /opt ;不管现在到那直接跳到指定的opt文件夹中 cd ~ ;切换当前用户的家目录。root用户的家目录就是 阅读全文
posted @ 2023-05-01 21:55 酷酷- 阅读(65) 评论(0) 推荐(0) 编辑
摘要:1 前言 这节我们来简单看一下Linux系统的磁盘、目录、文件。 2 Linux 文件系统 在 Linux 操作系统中,所有被操作系统管理的资源,例如网络接口卡、磁盘驱动器、打印机、输入输出 设备、普通文件或是目录都被看作是一个文件。 也就是说在 Linux 系统中有一个重要的概念:一切都是文件。其 阅读全文
posted @ 2023-05-01 21:24 酷酷- 阅读(115) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示