摘要: [字节二面算法] 662. 二叉树最大宽度 给你一棵二叉树的根节点 root ,返回树的 最大宽度 。 树的 最大宽度 是所有层中最大的 宽度 。 每一层的 宽度 被定义为该层最左和最右的非空节点(即,两个端点)之间的长度。将这个二叉树视作与满二叉树结构相同,两端点间会出现一些延伸到这一层的 nul 阅读全文
posted @ 2023-05-01 10:30 Tod4 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 【dp的二分优化】300. 最长递增子序列 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 示例 1: 输入:nums 阅读全文
posted @ 2023-04-30 11:31 Tod4 阅读(20) 评论(0) 推荐(0) 编辑
摘要: ### 索引优化 有哪些维度可以进行数据库调优? - 索引失效,没有充分利用到索引 建立索引 - 关联查询join太多(设计缺陷或不得已的需求) SQL优化 - 服务器调优及各个参数的设计(缓冲、线程池等) 调整my.cnf - 数据过多,SQL优化也到达了极限 分库分表 SQL查询优化可以分为`物 阅读全文
posted @ 2023-04-29 14:36 Tod4 阅读(68) 评论(1) 推荐(1) 编辑
摘要: [完全背包排列问题] 377. 组合总和 Ⅳ 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。 题目数据保证答案符合 32 位整数范围。 示例 1: 输入:nums = [1,2,3], target 阅读全文
posted @ 2023-04-29 11:04 Tod4 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 【树形DP入门题】337. 打家劫舍 III 小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为 root 。 除了 root 之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果 两个直接相连的房子在同一天 阅读全文
posted @ 2023-04-29 10:22 Tod4 阅读(12) 评论(0) 推荐(0) 编辑
摘要: ### 分析查询语句:EXPLAIN #### 1概述 ​ **定位了查询慢的SQL之后,就可以使用EXPLAIN或者DESCRIBE工具做针对性的分析查询**。两者使用方法相同,并且分析结果也是相同的。 ​ MySQL中有专门负责SQL语句优化的优化器模块,主要功能是计算分析系统中收集到的统计信息 阅读全文
posted @ 2023-04-14 15:58 Tod4 阅读(345) 评论(0) 推荐(2) 编辑
摘要: 134. 加油站 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 给定两个整数数组 gas 和 cost ,如果你可以绕 阅读全文
posted @ 2023-04-10 14:25 Tod4 阅读(40) 评论(0) 推荐(0) 编辑
摘要: #### 性能分析工具SLOW QUERY LOG、PROFILE的使用 ​ 数据库调优的目标就是`响应速度更快,吞吐量更大`。利用宏观的监控工具和微观的日志分析可以帮助我们找到调优的思路和方式。 #### :star2: 数据库调优的步骤 ​ 整个流程分为了`观察(Show Status)`和`行 阅读全文
posted @ 2023-04-07 17:06 Tod4 阅读(185) 评论(0) 推荐(0) 编辑
摘要: ### 索引使用的情况分析 #### 数据准备 - 创建表student_info、course ```sql CREATE TABLE `student_info` ( `id` int NOT NULL AUTO_INCREMENT, `student_id` int NOT NULL, `na 阅读全文
posted @ 2023-04-06 17:08 Tod4 阅读(68) 评论(0) 推荐(0) 编辑
摘要: ### 索引的创建与设计原则 #### 1 索引的声明与使用 ##### 1.1 索引的分类 ​ MySQL索引包括`普通索引`、`唯一性索引`、`全文索引`、`单列索引`、`多列索引`和`空间索引` - 按照逻辑结构划分,主要有四种:`普通索引`、`唯一性索引`、`主键索引`和`全文索引` - 按 阅读全文
posted @ 2023-04-05 20:03 Tod4 阅读(108) 评论(0) 推荐(0) 编辑
摘要: ### 表空间结构:区、段与碎片区 #### 为什么要有区? ​ B+树中的每一层的页都会形成一个双向链表,双向链表之间的物理位置可能会离得非常远,当遇到范围查询的适用场景的时候,就会定位到最左边和最右边的记录,然后沿着双向链表一直扫描,而如果这其中的两个页面物理上离得特别远,就会成为`随机I/O` 阅读全文
posted @ 2023-04-03 22:39 Tod4 阅读(245) 评论(0) 推荐(1) 编辑
摘要: #### InnoDB行格式 ##### 查看默认行格式: ```sql select @@innodb_default_row_format; ``` ##### 查看数据库表使用的行格式 ```sql mysql> use atguigudb; Reading table information 阅读全文
posted @ 2023-04-03 22:38 Tod4 阅读(92) 评论(0) 推荐(0) 编辑
摘要: ### InnoDB数据结构 #### 1 数据库的存储结构:页 ​ 索引信息和数据记录都是保存在文件上的,确切来说是保存在`页结构`中;另一方面,**索引是在存储引擎上实现的**,MySQL服务器上的存储引擎负责对表中数据的读取和写入工作。不同的存储引擎的`存放格式`是不同的,比如Memory甚至 阅读全文
posted @ 2023-04-03 22:38 Tod4 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 101. 对称二叉树 ​ 给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root = [1,2,2,3,4,4,3] 输出:true 示例 2: 输入:root = [1,2,2,null,3,null,3] 输出:false 提示: 树中节点数目在范围 [1, 100 阅读全文
posted @ 2023-03-21 10:52 Tod4 阅读(14) 评论(0) 推荐(0) 编辑
摘要: #### Hash索引 ##### 简介 ​ **这部分略了** ##### Hash索引效率高,为什么还要设计索引结构为树形结构? - Hash索引仅能满足 **=、和IN查询**,如果进行`范围查询`,哈希的索引会退化成O(n);而树型的有序特性,仍然能够保持O(log2n)的效率 - Hash 阅读全文
posted @ 2023-03-17 14:30 Tod4 阅读(112) 评论(4) 推荐(0) 编辑
摘要: 存储引擎 ​ 连接管理、查询缓存、解析器和执行器被归为MySQL service,而把真实存储数据的功能划分为存储引擎的功能。所以MySQL service经过查询优化后,只需按照生成的执行计划调用存储引擎的API获取数据,然后返回给客户端即可。存储引擎本质就是表的类型,功能是接收上层传来的指令,然 阅读全文
posted @ 2023-03-17 14:29 Tod4 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 索引的数据结构 1 为什么使用索引 索引概述 索引(Index)是帮助MySQL高效获取数据的数据结构。是“排好序的快速查找结构”,满足特定的查找算法 索引是在存储引擎中实现的,每种存储引擎的索引不一定完全相同,每种存储引擎也不一定支持所有的索引 存储引擎可以定义每个表的最大索引数和最大索引长度 所 阅读全文
posted @ 2023-03-17 14:29 Tod4 阅读(77) 评论(0) 推荐(0) 编辑
摘要: #### 1 配置文件的使用 ##### my.cnf配置文件 /etc/my.cnf: ```bash [root@hadoop103 ~]# cat /etc/my.cnf # For advice on how to change settings please see # http://de 阅读全文
posted @ 2023-03-17 14:29 Tod4 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 使用栈模拟队列 ​ 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾 int pop() 从队列的开头移除并返回元素 int peek() 返回队列 阅读全文
posted @ 2023-03-16 10:27 Tod4 阅读(12) 评论(0) 推荐(0) 编辑
摘要: ### ThreadLocal ![image-20230309154050903](https://hikaru0530.oss-cn-hangzhou.aliyuncs.com/PicGo/image-20230309154050903.png) #### 简介 ThreadLocal提供局部线 阅读全文
posted @ 2023-03-09 19:47 Tod4 阅读(26) 评论(0) 推荐(0) 编辑
摘要: JUC分支合并框架 简介 Fork/Join可以将一个大的任务拆分成多个子任务进行并行处理,最后将子任务的结果合并称为最终的计算结果。 Fork:负责将任务拆分 Join:合并拆分任务 ForkJoinPool:分支合并池,添加分支合并任务,使用get得到计算结果 案例一:实现1+...+100,要 阅读全文
posted @ 2023-03-09 19:46 Tod4 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 堵塞队列 简介 def:在多线程中实现高效、安全的数据传输,主要是通过一个共享的队列,使得数据能够从一端输入,从另一端输出 当队列是空的,取数据的线程就会被堵塞,直到其他线程往空的队列中添加数据 当队列是满的,放数据的线程就会被堵塞,直到其他线程移除数据 使用堵塞队列能够实现简化线程之间的协作,使用 阅读全文
posted @ 2023-03-09 19:45 Tod4 阅读(36) 评论(0) 推荐(0) 编辑
摘要: Callable接口 创建线程的几种方式 继承Thread类 实现Runnable接口 通过Callable接口 线程池 使用Runnable接口无法获取到线程返回的结果,因此在jdk1.5后java提供了Callable接口。 Callable接口的特点 需要实现带返回结果的call方法 无法计算 阅读全文
posted @ 2023-03-09 19:45 Tod4 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 多线程锁 Synchronized锁的八种情况 以一个手机类为例,包含两个synchronized方法和一个普通方法。 public class Phone { public synchronized void sendSMS() throws InterruptedException { Syst 阅读全文
posted @ 2023-03-09 19:45 Tod4 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 内置对象 ECMA内置对象 Boolean、Number、String、RegExp、Date、Error const regexp:RegExp = /\w\d\s const number:Number = 1 const string:String = "123" ... 返回的都是一个对象, 阅读全文
posted @ 2023-03-07 11:01 Tod4 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 1 TypeScript 环境搭建 1 准备NodeJs环境 2 npm全局安装typeScript npm i -g typescript 3 编写一个ts文件 4 使用tsc命令编译ts文件为js E:\File\myNote\TypeScript>tsc hello.ts 5 使用ts-nod 阅读全文
posted @ 2023-03-07 11:01 Tod4 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 集合的线程安全 list集合线程不安全演示 List中的add方法没有添加Synchronized,因此是线程不安全的: public boolean add(E e) { modCount++; add(e, elementData, size); return true; } public st 阅读全文
posted @ 2023-03-07 11:00 Tod4 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 线程间通信 多线程编程步骤 创建资源类,编写属性和操作方法 在资源中的操作方法 判断 干活 通知 创建多个线程,调用资源类的操作方法 使用while循环进行条件判断,防止虚假唤醒问题 一个加减实例 & 虚假唤醒问题 实现对一个初始值0进行轮流加减操作 public class AddAndSub { 阅读全文
posted @ 2023-03-07 10:59 Tod4 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 1 JUC简介 JUC就是java.util.concurrent的简称,这是一个处理线程的工具包,JDK1.5开始出现的。 进程和线程、管程 进程:系统资源分配的基本单位;它是程序的一次动态执行过程。系统运行一个程序即是一个进程从创建,运行到消亡的过程。 线程:系统资源调度的基本单位;它是一个比进 阅读全文
posted @ 2023-03-07 10:58 Tod4 阅读(270) 评论(0) 推荐(0) 编辑
摘要: Mysql的主要目录结构 find / -name mysql 1 数据库文件的存放路径 /var/lib/mysql/ MySQL服务器程序会在启动的时候去文件系统下的某个目录加载一些文件,之后在运行过程中产生的数据也会存储到这个目录下的某个文件中,这个目录就称为数据目录。 可以通过命令查看当前数 阅读全文
posted @ 2023-02-16 20:31 Tod4 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 用户与权限管理 :bust_in_silhouette:用户管理 MySQL用户分为普通用户和root用户,提供了许多语句来管理包括登录、退出MySQL服务器、创建用户、删除用户、密码管理和权限管理等内容。 :sailboat:登录MySQL服务器 mysql -h hostName|hostIP 阅读全文
posted @ 2023-02-16 20:31 Tod4 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 1 字符集的相关操作 MySQL8.0之前的版本,默认字符集为latin1,8.0及之后默认为utfmb3、utfmb4,如果以前的版本忘记修改默认的密码,就会出现乱码的问题。 1.1 修改步骤 修改mysql字符集配置 查看mysql的字符集编码 mysql> show variables lik 阅读全文
posted @ 2023-02-16 20:30 Tod4 阅读(110) 评论(0) 推荐(1) 编辑
摘要: Linux下MySQL的安装 1 MySQL的安装 1.1 Linux系统以及工具的准备 这里使用两台CentOS7虚拟机,一台安装8.0版本,另一台克隆的虚拟机安装5.7版本 克隆的虚拟机需要进行配置修改: mac地址 主机名 cd /etc/hostname hadoop101 ip地址 vim 阅读全文
posted @ 2023-02-16 20:29 Tod4 阅读(86) 评论(0) 推荐(0) 编辑
摘要: :tv: Zookeeper部署与使用 1 分布式安装部署 配置服务器编号 在.../zkData文件目录下创建myid文件,并写入服务器编号 [root@hadoop101 apache-zookeeper-3.5.10-bin]# cd zkData/ [root@hadoop101 zkDat 阅读全文
posted @ 2023-01-31 23:12 Tod4 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 1 安装 安装JDK(参考项目部署) 将Zookeeper拷贝到Linux下 解压 tar -zxvf apache-zookeeper-3.5.10-bin.tar.gz -C /opt/module/ 修改配置文件 将/opt/module/apache-zookeeper-3.5.10-bin 阅读全文
posted @ 2023-01-31 23:11 Tod4 阅读(45) 评论(0) 推荐(0) 编辑
摘要: Zookeeper概述 1 概述 Zookeeper是一个开源的、分布式的,为分布式应用提供协调服务的Apache项目。 Zookeeper从设计模式的角度来看,是一个基于观察者模式设计的分布式服务管理框架 它负责管理大家都关心的数据,然后接收观察者的注册 一旦数据发生变化,Zookeeper就负责 阅读全文
posted @ 2023-01-31 23:10 Tod4 阅读(19) 评论(0) 推荐(0) 编辑
摘要: redis6新功能 1 ACL Redis ACL是AccessControlList(访问控制表)的缩写,该功能允许根据可以执行的命令和访问的键来限制某些连接。 2 基本命令 acl help > ACL help 1) ACL <subcommand> arg arg ... arg. Subc 阅读全文
posted @ 2022-12-09 15:47 Tod4 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 应用问题解决 1 缓存穿透 1.1 访问结构 正常情况下,服务器接收到浏览器发来的web服务请求,会先去访问redis缓存,如果缓存中存在数据则直接返回,否则会去查询数据库里面的数据,然后保存在redis中再进行返回。 1.2 缓存击穿的现象 出现大量web请求,应用服务器压力变大 redis命中率 阅读全文
posted @ 2022-12-09 15:46 Tod4 阅读(111) 评论(0) 推荐(0) 编辑
摘要: Redis集群 1.1 存在的问题 容量不够Redis如何扩容 并发写操作,Redis如何分摊 当主机或者从机宕机,薪火相传、反客为主等主从模式都会导致ip发生变化,应用程序中的配置需要对应修改主机地址以及端口号等信息。 主机代理方式 主机代理方式指的是不需要客户端去寻找需要的服务,而是只暴露一个代 阅读全文
posted @ 2022-12-09 15:45 Tod4 阅读(111) 评论(0) 推荐(0) 编辑
摘要: Redis持久化 Redis持久化指的是将redis中的数据写入硬盘的过程。 1 RDB 简介 在指定的时间间隔内,将内存中的数据集快照写入磁盘,也就是snapshot,它恢复的时候是将快照文件直接读到内存。 怎么样进行的持久化? RDB持久化采用了Linux常用的写时复制技术: Redis会单独创 阅读全文
posted @ 2022-12-09 15:44 Tod4 阅读(42) 评论(0) 推荐(0) 编辑