mysql数据库相关流程图原理图
前言整理了一些Mysql数据库相关流程图/原理图,做一下笔记,大家一起学习。
1.mysql主从复制原理图mysql主从复制原理是大厂后端的高频面试题,了解mysql主从复制原理非常有必要。
主从复制原理,简言之,就三步曲,如下:
主数据库有个bin-log二进制文件,纪录了所有增删改Sql语句。(binlog线程)
从数据库把主数据库的bin-log文件的sql语句复制过来。(io线程)
从数据库的relay-log重做日志文件中再执行一次这些sql语句。(Sql执行线程)
如下图所示:
上图主从复制分了五个步骤进行:
步骤一:主库的更新事件(update、insert、delete)被写到binlog
步骤二:从库发起连接,连接到主库。
步骤三:此时主库创建一个binlog dump thread,把binlog的内容发送到从库。
步骤四:从库启动之后,创建一个I/O线程,读取主库传过来的binlog内容并写入到relay log
步骤五:还会创建一个SQL线程,从relay log里面读取内容,从Exec_Master_Log_Pos位置开始执行读取到的 ...
书写高质量SQL的30条建议
前言本文将结合实例demo,阐述30条有关于优化SQL的建议,多数是实际开发中总结出来的,希望对大家有帮助。
1、查询SQL尽量不要使用select *,而是select具体字段。反例子:
1select * from employee;
正例子:
1select id,name from employee;
理由:
只取需要的字段,节省资源、减少网络开销。
select * 进行查询时,很可能就不会使用到覆盖索引了,就会造成回表查询。
2、如果知道查询结果只有一条或者只要最大/最小一条记录,建议用limit 1假设现在有employee员工表,要找出一个名字叫jay的人.
12345678CREATE TABLE `employee` ( `id` int(11) NOT NULL, `name` varchar(255) DEFAULT NULL, `age` int(11) DEFAULT NULL, `date` datetime DEFAULT NULL, `sex` int(1) DEFAULT NULL, PRIMARY KEY (`id`) ...
一文彻底读懂MySQL事务的四大隔离级别
前言之前分析一个死锁问题,发现自己对数据库隔离级别理解还不够清楚,所以趁着这几天假期,整理一下MySQL事务的四大隔离级别相关知识,希望对大家有帮助~
事务什么是事务?事务,由一个有限的数据库操作序列构成,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。
假如A转账给B 100 元,先从A的账户里扣除 100 元,再在 B 的账户上加上 100 元。如果扣完A的100元后,还没来得及给B加上,银行系统异常了,最后导致A的余额减少了,B的余额却没有增加。所以就需要事务,将A的钱回滚回去,就是这么简单。
事务的四大特性
原子性: 事务作为一个整体被执行,包含在其中的对数据库的操作要么全部都执行,要么都不执行。
一致性: 指在事务开始之前和事务结束以后,数据不会被破坏,假如A账户给B账户转10块钱,不管成功与否,A和B的总金额是不变的。
隔离性: 多个事务并发访问时,事务之间是相互隔离的,一个事务不应该被其他事务干扰,多个并发事务之间要相互隔离。。
持久性: 表示事务完成提交后,该事务对数据库所作的操作更改,将持久地保存在数据库之中。
事务并发存在的问题事务并发执行 ...
你所知道网络协议有那些?
HTTP:超文本传输协议
FTP:文件传输协议
SMPT:简单邮件协议
TELNET:远程终端协议
POP3:邮件读取协议
Redis缓存面试题
缓存/Redis
Redis用过哪些数据类型,每种数据类型的使用场景
Redis缓存穿透、缓存雪崩和缓存击穿原因,以及解决方案
如何使用Redis来实现分布式锁,redis分布式锁有什么缺陷?
Redis 持久化机制,有几种方式,优缺点是什么,怎么实现的,RDB和AOF的区别
Redis集群,高可用,原理。
Redis的数据淘汰策略
为什么要用redis?为什么要用缓存,在哪些场景使用缓存
redis事务,了解吗,了解Redis事务的CAS操作吗
如何解决 Redis 的并发竞争Key问题。
Redis为什么是单线程的,为什么单线程还这么快?
如何保证缓存与数据库双写时的数据一致性?
redis和memcached有什么区别
JVM本地缓存,了解过吗
redis的list结构相关的操作。
redis2和redis3的区别,redis3内部通讯机制。
Redis的选举算法和流程是怎样的?
Reids的主从复制机制原理。
Redis的线程模型是什么?
Redis的使用要注意什么,讲讲持久化方式,内存设置,集群的应用和优劣势,淘汰策略等。
Redis缓存分片
redis的集群怎么同 ...
当你用浏览器打开一个链接(如:httpwww.javastack.cn)到返回结果,发生了什么。
DNS解析
TCP连接
发送HTTP请求
服务器处理请求并返回HTTP报文
浏览器解析渲染页面
连接结束
计算机网络面试
计算机网络
请详细介绍一下TCP 的三次握手机制,为什么要三次握手?
讲一下HTTP与HTTPS 的区别。
Session和cookie的区别。
TCP的四次挥手,为什么要有TIME_WAIT 状态,为什么需要四次握手
http1.0和http1.1有什么区别。
HTTP的常见状态码有哪些,代表什么含义?比如200, 302, 404?
当你用浏览器打开一个链接到返回结果,发生了什么。
TCP/IP如何保证可靠性,说说TCP头的结构。
GET与POST方式的区别
如何避免浏览器缓存。
TCP/IP模型?
讲一讲 TCP 和 UDP 各有什么特点,两者有什么区别
详细讲一下TCP的滑动窗口
说一下拥塞控制
如何理解HTTP协议的无状态性。
HTTP有哪些 method?
HTTP长连接和短连接
HTTPS原理,加签,验签,什么是数字签名?什么是数字证书?对称加密和非对称加密等。
谈下你对 IP 地址分类的理解?
ARP及RARP协议的工作原理?
怎么解决拆包和粘包?
DNS 的解析过程?
什么是DoS、DDoS、DRDoS攻击?如何防御?
WebSocket与sock ...
TCP协议15连问
前言TCP协议是大厂面试必问的知识点。整理了15道非常经典的TCP面试题,希望大家都找到理想的offer呀
公众号:捡田螺的小男孩
1. 讲下TCP三次握手流程
开始客户端和服务器都处于CLOSED状态,然后服务端开始监听某个端口,进入LISTEN状态
第一次握手(SYN=1, seq=x),发送完毕后,客户端进入 SYN_SEND 状态
第二次握手(SYN=1, ACK=1, seq=y, ACKnum=x+1), 发送完毕后,服务器端进入 SYN_RCVD 状态。
第三次握手(ACK=1,ACKnum=y+1),发送完毕后,客户端进入 ESTABLISHED 状态,当服务器端接收到这个包时,也进入 ESTABLISHED 状态,TCP 握手,即可以开始数据传输。
2.TCP握手为什么是三次,不能是两次?不能是四次?TCP握手为什么是三次呢?为了方便理解,我们以谈恋爱为例子:两个人能走到一起,最重要的事情就是相爱,就是我爱你,并且我知道,你也爱我,接下来我们以此来模拟三次握手的过程:
为什么 ...
无题
消息队列
消息队列有哪些使用场景。
消息中间件如何解决消息丢失问题?
谈谈消息的重发,补充策略。
如何保证消息的顺序性。
怎么利用mq实现最终一致性?
kafka 和其他消息队列的区别,kafka 主从同步怎么实现?
MQ的连接是线程安全的吗,你们公司的MQ服务架构怎样的。
kafka吞吐量高的原因。
rabbitmq如何实现集群高可用?
使用kafka有没有遇到什么问题,怎么解决的?
MQ有可能发生重复消费,如何避免,如何做到幂等?
MQ的消息延迟了怎么处理,消息可以设置过期时间么,过期了你们一般怎么处理?
rabbitmq 有几种广播类型?
使用 kafka 集群需要注意什么?
为什么使用消息队列?有什么用?
消息队列有什么优点和缺点?
Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景?
MQ能否保证消息必达,即消息的可靠性
大量消息在MQ里长时间积压,该如何解决?
MQ消息过期失效怎么办?
kafka可以脱离zookeeper单独使用吗?为什么?
kafka 的分区策略有哪些?
kafka 有几种数据保留策略?
RabbitMQ 中 ...
无题
- Redis做缓存持久化存储session
- 数据库存储session