eat-distribution
小白的 分布式 学习之路
干就玩了,面向面试,冲冲冲
分布式算法
- 1 basic
- 2 分布式协调与同步
- 分布式互斥
- 分布式选举
- 分布式共识
- 分布式事务
网络
-
HTTP
- 发展历程
- 网络模型
- 域名
- 报文结构
- 请求方法
- URI
- 响应状态码
- HTTP的优缺点
- HTTP的实体数据
- HTTP传输大文件的方法
- HTTP连接管理
- HTTP的重定向和跳转
- HTTP的Cookie机制
- HTTP的缓存控制
- HTTP的代理服务
- HTTP的缓存代理
- HTTPS与SSL/TLS
- 对称加密与非对称加密
- 数字签名与证书
skip
- TLS1.2连接过程解析
- TLS1.3特性解析
- HTTPS的优化
- HTTPS迁移
skip end
- HTTP2特性
- HTTP2内核剖析
- HTTP3
- HTTP2迁移
- WebSocket
- HTTP优化
面试题重构
-
OSI与TCP/IP协议族
- 协议族各层的结构与功能?
- 各层的主要协议及其功能?
- 在浏览器中输入url地址到显示主页的过程?
-
HTTP
微服务
鉴权
服务发现
Kafka
- 01 消息引擎ABC
- 02 Kafka术语
- 03 Kafka只是消息引擎系统吗?
- 04 我应该选择哪种Kafka?
- 05 Kafka的版本号
- 06 Kafka线上集群部署方案怎么做?
- 07 集群参数配置上
- 08 集群参数配置下
- 09 生产者消息分区机制原理剖析
- 10 生产者压缩算法面面观
- 11 无消息丢失配置怎么实现?
- 12 客户端都有哪些不常见但是很高级的功能?
- 13 Java生产者是如何管理TCP连接的?
- 14 幂等生产者和事务生产者是一回事吗
4月4日之前
Spring
Spring boot
Spring cloud
Dubbo
Redis
JVM
深入拆解JAVA虚拟机
- 01 Java代码是怎么运行的
- 02 Java的基本类型
- 03 Java虚拟机是如何加载Java类的
- 04 JVM是如何执行方法调用的(上)?
太难了,先暂停
尚硅谷 JVM
- 20210326 15
- 20210328 38
- 20210329 类加载器 笔记整理
20210404前 刷完 前 100课
笔记
https://gitee.com/moxi159753/LearningNotes/tree/master/JVM
Mysql
基础
-
1 基础架构
- MySQL框架有几个组件, 各有什么作用?(一句SQL的执行流程)
- Server层和存储引擎层各有什么作用?
- 长连接和短链接的区别和应用场景?
- 对于表的操作权限验证在哪里进行?
- 在词法分析和语法分析阶段分别会做什么?
-
2 日志系统
- redo log的是什么? 为什么会存在?
- 如果数据库误操作, 如何执行数据恢复?
- 什么是两阶段提交?为什么需要两阶段提交?两阶段提交怎么保证数据库中两份日志间的逻辑一致性?
- 如果不是两阶段提交, 先写redolog和先写binlog两种情况各会遇到什么问题?
-
3 事务隔离
- 事务的概念是什么?
- 事务隔离级别读未提交, 读已提交, 可重复读, 串行各是什么?
- 事务隔离是怎么通过read-view(读视图)实现的?
- 可重复读的使用场景举例?
- 事务的启动方式有哪几种?
- 长事务
- 使用长事务有什么弊病?
- 如何避免长事务的出现?
- 怎么查询各个表中的长事务?
- commit work and chain 语法是做什么用的?
-
04-05 索引
- 索引的常见模型
- InnoDB的索引模型
- 索引维护
- 覆盖索引
- 最左前缀原则
- 索引下推
-
06 全局锁和表锁
- MySQL从加锁范围上分为哪三类?
- 全局锁加锁方法的执行命令是什么?主要的应用场景是什么?
- 做整库备份时为什么要加全局锁?
- MySQL的自带备份工具, 使用什么参数可以确保一致性视图, 在什么场景下不适用?
- 不建议使用set global readonly = true的方法加全局锁有哪两点原因?
- 表级锁有哪两种类型? 各自的使用场景是什么?
- MDL中读写锁之间的互斥关系怎样的?
- 如何安全的给小表增加字段?
-
07 行锁
- 两阶段锁的概念是什么?对事务使用有什么帮助?
- 死锁的概念是什么?举例说明出现死锁的情况
- 死锁的处理策略有哪两种?
- 等待超时处理死锁的机制是什么?有什么局限?
- 死锁检测的机制是什么?有什么局限?
- 有哪些思路可以解决热点更新导致的并发问题?
-
08 事务隔离 (难,先跳过)
实践
-
09 普通索引和唯一索引,应该怎么选择?
- 选择普通索引还是唯一索引?
- change buffer的使用场景?
-
10 MySQL为什么有时候会选错索引?
- MySQL如何判断一个查询的扫描行数?
- 索引基数如何计算?通过哪个参数可以设置索引统计的存储方式?
- 重新统计索引信息的命令是什么?
- 如何定位索引选择异常这样的问题?
- 索引选择异常的问题可以有哪几种处理方式?
-
11 怎么给字符串字段加索引?
- 采用整个字符串作为索引. 在查询操作时, 执行顺序是怎样的?
- 采用部分字段做索引, 在查询操作时, 执行顺序是怎样的?
- 怎么确定前缀索引的长度?
- 前缀索引相比较整个字段做索引有什么优势和劣势?
- 采用反序存储和hash字段作为索引有什么异同点?
-
12 为什么我的MySQL会抖一下?
- 脏页和干净页的定义是什么?
- 什么情况下回引发数据库的flush操作?各操作对MySQL的性能的影响是怎样的?
- innodb_io_capacity这个参数的作用是什么,这个参数设置错误可能导致什么样的后果, 如何正确的设置这个参数?
- Mysql如何控制刷脏页的速度?
- innodb_flush_neighbor这个参数表示什么意思,应该如何设置?
-
13 为什么表数据删掉一般,表文件大小不变?
- 为什么删除了表一般的数据,表文件的带下却没发生变化?
- 表的数据信息存在哪里?
- 表的结构信息存在哪里?
- 如何才能删除表数据后,缩小表文件的大小?
- 空洞是什么?怎么产生的?
- Online 和 inplace是什么?
-
14 count(*)这么慢,我该怎么办?
- count(*)的实现方式在MySAM引擎和InnoDB引擎的实现方式各是怎么样的? 为什么会有这种不同?
- 那么如果有一个页面要经常显示交易系统的操作记录 总数,到底该怎么办?
- count(字段),count(id),count(1), count(*)各自是怎么样的执行机制, 效率排序是怎么样的?
-
15 答疑:日志和索引相关问题
-
16 order by 是怎么工作的?
- 全字段排序的流程是怎么样的?
- sort_buffer_size, number_of_tmp_files, packed_additional_fields 这几个参数各是什么含义?
- rowid排序的流程是怎么样的?
- 优化数据库排序的方法?
-
17 如何正确地显示随机信息?
- order by rand()的执行流程?
- 随机排序的方法有哪些?
-
18 为什么这些SQL语句逻辑相同,性能却差异这么巨大?
- SQL在索引上如果做了函数操作会怎样?
- 如何避免在索引上做函数操作?
-
19 为什么我只查一行地语句,也执行这么慢?
- 查询长时间不返回是什么情况?怎么处理?
- 查询慢一般是什么情况?怎么处理?
-
20 幻读是什么,幻读有什么问题? (跳过)
-
21 为什么我只改一行语句,锁这么多?(跳过)
-
22 MySQL有哪些“饮鸩止渴”提高性能的方法?
- 怎样应对短连接风暴?
- 出现慢查询性能问题的原因有哪些?如何避免?
- 如何在数据库端解决QPS突增的问题?
-
23 MySQL是怎么保证数据不丢的?(有点难,看了一半,需要再好好学一下日志那部分)
- binlog 的写入机制
- redo log的写入机制
-
24 MySQL是怎么保证主备一致的?
- 主备的基本原理?
- binlog的三种格式?
- 什么是循环复制问题?怎样解决?
-
25 MySQL是怎么保证高可用的?
- 什么是主备延迟?
- 主备延迟的来源?
- 可靠性优先策略?
- 可用性优先策略?
-
26 备库为什么会延迟好几个小时?
- 按表并行复制策略?
- 按行并行复制策略?
- MySQL5.6 的并行复制策略?
- MariaDB 的并行复制策略?
- MySQL5.7 的并行复制策略?
- MySQL 5.7.22的并行复制策略?
优化整理
11 字符串索引优化
12 控制刷脏页的方法和对应的监控方式
13 优化表空间
14 count(*)
18 随机信息
SQL
- 01 了解SQL
- 02 DBMS的前世今生
- 03 SQL是如何执行的
- 04 使用DDL创建数据库&数据表时需要注意什么?
- 05 检索数据
- 06 数据过滤
- 07 函数
- 08 聚集函数
- 09 子查询
- 10 SQL标准 & 连接