自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

吃鲸的田园犬

一位还没走向社会的java小白

  • 博客(28)
  • 收藏
  • 关注

转载 【Spring Boot】Spring Boot之两种引入spring boot maven依赖的方式

https://www.cnblogs.com/756623607-zhang/p/12174018.html

2022-03-09 21:29:03 295 1

原创 第十八讲笔记——为什么 SQL语句逻辑一样,但是性能差异巨大

MySQL 规定:如果对字段做了函数计算,就用不上索引。案例一:条件字段函数操作在一个表中有一个时间字段(t_modified),也在时间字段上创建了索引,现在使用如下的 SQL 语句:select count(*) from tradelog where month(t_modified)=7;很遗憾,这条语句使用不了时间字段上的索引,因为对字段使用了函数计算。下面是索引示意图,方框上的数据就是 month() 函数对应的值。可见,时间的顺序排列的,但是计算之后的值确实被打乱了。实际上,

2021-11-29 17:57:21 431

原创 第十七讲笔记——如何显示随机消息

从单词表中随机选出三个单词。CREATE TABLE `words` (`id` int(11) NOTNULLAUTO_INCREMENT,`word` varchar(64) DEFAULTNULL,PRIMARY KEY (`id`)) ENGINE=InnoDB;随机插入 10000 行数据,之后来分析。内存临时表select word fromo words order by rand() limit 3这个 SQL 就是随机排序取前三个,但执行过程有点复杂。我们使用 ex

2021-11-29 17:56:20 567

原创 第十六讲笔记——“order by”是怎么工作的?

假设需要查询城市是“杭州”的所有人名字,而且按照姓名排序返回前 1000 人的姓名、年龄。这个表的定义是这样的:CREATE TABLE `t` (`id` int(11) NOTNULL,`city` varchar(16) NOTNULL,`name` varchar(16) NOTNULL,`age` int(11) NOTNULL,`addr` varchar(128) DEFAULTNULL,PRIMARY KEY (`id`),KEY `city` (`city`)) ENG

2021-11-29 11:56:20 690

原创 第十五讲——日志答疑

在两阶段提交的不同瞬间,MySQL 如果发生异常是怎么保证数据完整性的?这是个 update 语句的执行流程吗,怎么会调用 commit语句?这里其实有**两个“commit”**的概念:平常说的“commit语句”,是指 MySQL 语法中,用于提交一个事务的命令。一般跟 begin/start transaction 配对使用。而这个图中是“commit步骤”,指的是事务提交过程中的一个小步骤,也是最后一步。当这个步骤执行完了,这个事物就提交了。“commit语句”执行时也包含“commi

2021-11-28 21:36:47 251

原创 211、最大正方形

题目:在一个由 '0' 和 '1' 组成的二维矩阵内,找到只包含 '1' 的最大正方形,并返回其面积。思路:本题中的输入数组是 char 类型的二维数组,时刻记得看题目。采用动态规划,使用 dp[][] 数组,大小和输入数组一样。里面记载的是以当前位置为正方形的右下角的正方形边长。所以,每个位置的值有以下几种情况:如果该位置是 0,则肯定不能组成正方形,直接把对应 dp 数组的值置为 0。如果该位置是 1,则能组成最大的正方形,取决于上、下,左斜上方位置中 dp 最小的那个,加一。dp(i

2021-11-28 20:35:00 61

原创 第十四讲笔记——count(x) 这么慢,怎么办?

count(*) 的实现方式在不同引擎中,count(*) 有不同的实现方式MyISAM 引擎就把一个表的总行数存在了磁盘上,因此执行 count(*) 的时候会直接返回;InnoDB 就麻烦了,它执行 count(*) 时,全表扫描,累计行数。这里是没说过滤条件,加了 where 后,MyISAM 也是不能返回这么快的。为什么 InnoDB 不把全表总行数存起来呢?因为即使在同一时刻,由于多版本并发控制(MVCC)的原因,InnoDB 返回多少行也是不确定的。由于 InnoDB 默认的隔

2021-11-28 16:53:34 302

原创 第十三讲笔记——为什么删除了一般数据,空间还是这么大

InnoDB 表包含两部分,即:表结构定义和数据。在 MySQL 8.0 版本以前,表结构是存在以 .fm 为后缀的文件里。而 MySQL 8.0 版本,已经允许把表结构定义放在系统数据表中了。因为表结构占用空间很小,所以我们主要来讨论表数据。参数 inoodb_file_pre_table这个参数可以控制表数据是存在共享表空间里,还是单独文件。这个参数设为 OFF 表示,表的数据放在系统共享表空间,也就是跟数据字典放在一起;这个参数设为 ON 表示,每个 InnoDB 表数据存储在一个以 .i

2021-11-28 16:10:06 164

原创 十二讲笔记——为什么我的 MySQL 会“抖”一下

为什么 SQL 语句变“慢”了在 InnoDB 处理更新语句的时候,只做了写日志这个磁盘操作,这个日志叫 redo log(重做日志)。当 InnoDB 有空的时候,就把日志更新一下,这个就是把内存里的数据写入磁盘,这个操作叫做 flush。在做 flush 这个操作之前,内存中数据页的数据跟磁盘中的数据页数据是不一样的,我们称这个内存页为“脏页”。内存数据写入到磁盘后,内存和数据库中的数据一致,我们称为“干净页”。注:不论是脏页还是干净页,都是在内存中的。可以想象,有时候数据库“抖”一下,可能

2021-11-28 15:23:20 151

原创 207、课程表

题目:你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi 。例如,先修课程对 [0, 1] 表示:想要学习课程 0 ,你需要先完成课程 1 。请你判断是否可能完成所有课程的学习?如果可以,返回 true ;否则,返回 false 。示例 1:输入:

2021-11-27 19:44:53 139

原创 第十一讲笔记——怎么给字符串字段加索引

以一个邮箱登陆为例,用户表是这么定义的:mysql> create table SUser(ID bigint unsigned primary key,email varchar(64),...)engine=innodb;那么一定会出现这样的语句:select f1, f2 from SUser where email='xxx'前缀索引MySQL 支持前缀索引,也就是,你可以定义字符串的一部分作为索引。如果你在创建时不指定长度,则默认包含整个字符串。比如:alter ta

2021-11-25 16:21:29 193

原创 第十讲笔记:MySQL 为什么有时会选错索引

一般情况下我们写 SQL 语句不会去选择索引。我们先建个简单表,并往里面添加 100000 行数据,例如:(1,1,1)。。。(100000,100000,100000)CREATE TABLE `t` (`id` int(11) NOT NULL,`a` int(11) DEFAULT NULL,`b` int(11) DEFAULT NULL,PRIMARY KEY (`id`),KEY `a` (`a`),KEY `b` (`b`)) ENGINE=InnoDB;当想查看一条 S

2021-11-25 12:10:40 298

原创 第九讲笔记——普通索引和唯一索引,怎么选?

在索引的建立上,建议不要把内容较长的字段(例如:身份证)作为主键,太占用空间。上面有两个索引,我们分析下在查询和更新语句中性能如何?查询过程假设查询的语句是 select id from T where k=5。在普通索引上,查到满足条件的第一个记录(5,500)之后,再查找下一条记录,查到碰到不满足条件 k=5 的记录为止。在唯一索引上,由于索引有唯一性,所以找到第一个满足条件的记录之后,就停止检索。性能差距:微乎其微。因为,InnoDB 是按照页来读写的,默认页大小是 16KB。所以

2021-11-25 10:38:35 275

原创 第八讲笔记——事务到底是隔离的还是不隔离的?

让我们直接来看个例子吧。以下是一个只有两行表的初始化语句。mysql> CREATE TABLE `t` (`id` int(11) NOT NULL,`k` int(11) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB;insert into t(id, k) values(1,1),(2,2);以下是三个事务的执行流程:这里的关键就是事务的启动时期。执行 begin/start transaction 命令并不是一个事务的起点,

2021-11-24 17:47:52 525

原创 第六、七讲笔记——MySQL中的锁

设计锁的初衷是为了处理并发问题。根据加锁的范围,MySQL 中的锁大致分为全局锁、表级锁、行锁三大类。全局锁全局锁是对整个数据库进行加锁。MySQL 使用 Flush tables whith read loc (FTWRL),就可以启动全局锁。这时整个数据库就处于只读状态。以下的语句会被阻塞:数据更新语句(数据的增删改)、数据定义语句(包括建表、修改表结构等)和更新类事务语句的提交语句。全局锁的使用场景是,做全库的逻辑备份。也就是把整个库的每个表 select 出来存成文本。但是如果让整个库处

2021-11-24 17:45:04 97

原创 第四、五讲笔记——MySQL中的索引

索引的目的就是为了提高数据的查询效率,就像字典的目录一样。索引的常见模型常见的有哈希表、有序数组、搜索树。哈希表哈希表是一种键值对的形式存储的数据结构。当遇到哈希冲突的时候,会在当前位置,拉出一个链表。由于接在位置上的链表不是有序的,所以哈希索引做区间查询的速度很慢。例如:找到 [ID_card_X, ID_card_Y] 这个区间的所有用户,就必须全部扫一遍。哈希表这种结构适用于只有等值查询的场景。有序数组有序数组在等值查询和范围查询场景中的性能都非常优秀。用上面那个找用户 ID 的例子

2021-11-23 16:43:05 502

原创 力扣算法155、最小栈

题目:设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。思路:栈中最小的元素要能在常数时间内找到,需要用空间换时间。可以设置一个辅助栈,记录以当前数为栈顶时,栈中最大数是多少。因为 java 中数组在创建时大小就被定下来了,如果使用数组模拟栈,还需要做一个扩容检测的方法,比较繁琐。所以自己创建一个结点,使用

2021-11-22 21:53:36 329

原创 第三讲笔记——事务隔离

事务:保证一组数据库操作,要么全部成功,要么全部失败。在MySQL中,事务支持是在引擎层实现的,所以本次分析事务是以 InnoDB 为例。隔离性与隔离级别事务有四大特性:ACID(Atomicity、consistency、Isolation、Durability),分别是原子性、一致性、隔离性、持久性。当多个事务同时执行的时候就有以下问题:脏写(dirty write):事务 B 去修改了事务 A 修改过的值,但是此时事务 A 还没提交,所以事务 A 随时会回滚,导致事务 B 修改的值也没了。

2021-11-22 19:52:57 467

原创 第二讲“SQL更新语句(redolog和binlog)”——笔记

更新语句和查询语句差不多。SQL更新例句:updata T set c = c + 1 where ID = 2;执行语句前连接数据库(连接器)。执行更新语句时,对于目标表的查询缓存会失效。分析器通过词法和语法分析知道是更新语句。优化器决定使用ID这个索引。执行器负责具体执行,调用存储引擎的接口,找到这一行并更新。redolog(重做日志)与binlog(归档日志)redolog(重做日志)binlog(归档日志)位置InnoDB 引擎特有的MySQL 本身

2021-11-22 19:50:56 465

原创 力扣(LeetCode)152、乘积最大子数组

题目:给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。思路:此题和 53 题十分相似,但是不能统一而论。在 53 题中,定义一个dp[],表示是以当前数为结尾的最大子序和。而此题的关键就是,不知道当位置上的是正数还是负数。如果当前数为正数,则前一个数的dp[]最大乘积越大越好。如果为负数,则越小越好。所以,我们直接使用两个数组,分别保存前一个数为结尾的最大子序乘积和最小子序乘积。这样,我们在判断当前数的时候,就直接从num[i]

2021-11-22 12:07:11 204

原创 力扣(LeetCode)148、排序链表(包含21、合并两个有序链表)

148、排序链表(包含21、合并两个有序链表)题目:给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。​ 进阶:你可以在 O(n logn) 时间复杂度和常数级空间复杂度下,对链表进行排序吗?思路:对于链表的排序在o(n logn)这个级别下,可以使用归并排序。归并排序:将数组从中递归的分成两部分,直到每部分只有一个数。将这两个数有序排列,随后回归,变成两个有序链表的有序排列。分成两步:将链表递归的分成两部分(找到链表的中间结点,使用快慢指针)将左右两部分进行

2021-11-22 10:49:48 357

原创 《编程小bai的第一本Python入门书》笔记

Python学习文章目录Python学习1、字符串字符串的分片与索引字符串的方法字符串格式符2、函数(方法)传递参数与参数类型传递参数有两种方式:位置参数关键词参数默认参数3、循环和判断基础比较比较运算的小问题成员运算符(in)与 身份运算符(is)布尔运算条件循环4、数据结构列表(list)列表的增删改查列表的切割字典(dictionary)字典的增删改查字典中的get()函数字典的遍历元组(Tuple)集合(set)数据结构的一些技巧多重循环排序推导式循环列表时获取元素的索引5、面向对象编程——类类属

2021-11-22 10:42:46 607

原创 《MySQL45讲》笔记——第一讲

01、SQL 查询语句的执行MySQL 结构图#mermaid-svg-zuGWeCMKkT3ARkbr .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-zuGWeCMKkT3ARkbr .label text{fill:#333}#mermaid-svg-zuGWeCMKkT3ARkbr .node re

2021-11-21 22:40:39 216

原创 《机器学习实战》李锐版十二章“FP-growth”算法代码解析

class treeNode: def __init__(self, nameValue, numOccur, parentNode): self.name = nameValue self.count = numOccur self.nodeLink = None self.parent = parentNode self.children = {} def inc(self, numOccur):

2021-11-21 17:13:58 736

原创 Windows命令行进入redis

打开命令行,输入redis-cli好啦

2020-05-28 09:41:14 1314

原创 springboot下 css静态文件可以访问,但js文件不能访问

项目结构有两个地方关于静态文件的配置在application.properties中在configuration文件中添加其实上面两个地方都是一个作用:重定位路径,以找到静态文件(可能说法不准确,但我是这么理解的)这个地方是个大坑,主要是关于路径没有搞明白下面是同个问题的另外解决办法https://blog.csdn.net/qq_43476529/article/details/106045654...

2020-05-11 14:52:19 629

原创 springboot项目访问静态资源css、js

网上大部分方法都使用过,还是用了虚拟路径才找到的这是项目结构。jsp页面要去访问layui资源。html页面的link与script写法<link rel="stylesheet" type="text/css" href="static/layui/css/layui.css" media="all"/><script type="text/javascript" src="static/layui/layui.js"></script>下面是config配

2020-05-11 00:35:42 898

原创 springboot报com.sun.el.ExpressionFactoryImpl not found

springboot报com.sun.el.ExpressionFactoryImpl not foundspringboot中使用jsp页面时要添加必要的依赖 <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</

2020-05-10 21:57:45 1943

空空如也

空空如也

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

TA关注的人

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